{"version":3,"file":"shared-lib.C9dFsnBI.mjs","names":["e","t","clamp","n","u","a","n","o","r","t","e","i","h","r","n","e","t","o","n","e","t","a","e","r","t","s","n","i","o","u","l","p","M","n","e","t","o","a","i","r","A","l","u","O","q","j","x","V","se","b","ce","Children","useRef","useMemo","useState","useCallback","size","i","clamp","containerStyle","e","i","o","t","n","containerStyle","addPropertyOverrides","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","t","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","RichText","e","n","a","i","j","k","log","time","timeEnd","noop","e","splitWordsRegex","useRef","useCallback","SearchInputClearButtonType","SearchInputDividerType","SearchResultTitleType","SearchResultSubtitleType","SearchResultItemType","SearchLayoutType","SearchEntryType","SearchIconType","splitWordsRegex","SearchInputClearButtonType","SearchInputDividerType","SearchResultTitleType","SearchResultSubtitleType","SearchResultItemType","SearchLayoutType","SearchEntryType","SearchIconType","splitWordsRegex","SearchInputClearButtonType","SearchInputDividerType","SearchResultTitleType","SearchResultSubtitleType","SearchResultItemType","SearchLayoutType","SearchEntryType","SearchIconType","p","useState","useTransition","i","SearchResultTitleType","useRef","useState","useDeferredValue","useCallback","Input","ResultRow","useMemo","ScrollView","React","useState","x","Overlay","EntryPoint","useRef","useState","addPropertyOverrides","enabledGestures","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","className","RichText","addPropertyOverrides","Search","MenuButton","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","Image","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","React.useRef","React.useId","sharedStyle.className","className","RichText","sharedStyle.css","sharedStyle.fonts","CrosslineAnimation","React.useContext","React.useMemo","React.Fragment","useRef","React.useId","className"],"sources":["https:/ga.jspm.io/npm:@motionone/utils@10.14.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/easing@10.12.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/animation@10.14.0/dist/index.es.js","https:/ga.jspm.io/npm:tslib@2.4.0/tslib.es6.js","https:/ga.jspm.io/npm:hey-listen@1.0.8/dist/index.js","https:/ga.jspm.io/npm:@motionone/generators@10.14.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/dom@10.12.0/dist/index.es.js","https:/framerusercontent.com/modules/B2xAlJLcN0gOnt11mSPw/plhC5PVnCMllW5QXjFK5/Ticker.js","https:/ga.jspm.io/npm:@motionone/easing@10.14.0/dist/index.es.js","https:/framerusercontent.com/modules/cKGD16u2MGB7MfqfVXFp/wiztTCbXokZrMicHAmZc/Grain.js","https:/framerusercontent.com/modules/1nbMXP7G0bjcqQSUYRpA/gZUXlkkH37yPeax0sWl0/GF5osqdRk.js","https:/framerusercontent.com/modules/LV9trClbmNwd5PVj9l8y/L4rFqMGNzGSwRZpGTGF3/Icons.js","https:/framerusercontent.com/modules/3Xi2AslpcDRhfyCVPmx3/d0Oobr5BHnVqZJQyMdGn/storage.js","https:/framerusercontent.com/modules/m2nL4qHNbqX9QCxsHsGL/b9aplVZjN51x28yfNK16/cache.js","https:/framer.com/m/cache-YMiL.js@b9aplVZjN51x28yfNK16","https:/framerusercontent.com/modules/uU1mtMKXsrVAg8N5hW7w/v7gDLwKJgQ5vAsFHxY4H/cachedIndex.js","https:/framerusercontent.com/modules/K9JZRwJcE6slDAf8rUmh/mJ54py1Ecnn1RoC4N1m4/fakeResults.js","https:/framerusercontent.com/modules/TwRgbWuhHeB95MPifel4/YW8Hlm59FG3PajbrVsaR/fuzzySearch.js","https:/framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js","https:/framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/IOZYtsQMauhTmjY894DM/useSearch.js","https:/framerusercontent.com/modules/PJVBcBLmDteTEAZh3J9Z/keXJyjyE9VnzUcDMayjg/browser.js","https:/framerusercontent.com/modules/Gzef0nFihI9m9vZG45th/lIUxbZcreiDm2GzUkt3y/useCallbackOnMouseMove.js","https:/framerusercontent.com/modules/eAnjm75CdfYT1Zz4BIaz/7KDSfnnyD1T3Ap75L4m8/scrollIntoView.js","https:/framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/wgITiHCOZBBo33pin0wW/SearchModal.js","https:/framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/G59GwobMNJqwSjtPO6Pv/useSearch.js","https:/framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/bsLTiXYjkHoD2XaMjabu/SearchModal.js","https:/framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/fpvHBWGoGQcWezUopJLS/useSearch.js","https:/framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/1GynhDlRW7uuXFYW1RXb/SearchModal.js","https:/framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/1vZ2fdkLJI4IprrVTHqR/useSearch.js","https:/framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/lCNMpf6DznmmCJRndYjM/SearchModal.js","https:/framerusercontent.com/modules/hqEf5wXaAewP8VPuaZ98/5A0QGVeEr2cwheQpIuEG/useViewportSizeState.js","https:/framerusercontent.com/modules/6wAE2eMb2Tl3zrU7u4UL/mKj6QS2p4Cgdaa0WrZKY/Search.js","https:/framerusercontent.com/modules/rWrhmhqyfHdWhmGtf2CJ/bo7x4nDwZibbVBQ5fz3p/RqjgT_SF7.js","https:/framerusercontent.com/modules/3nQBtMwiLaCb0BRkZx0n/FrHKfwoRWNk8S4B1uipK/RCnaNQOyx.js","https:/framerusercontent.com/modules/rS4Gk6IgtsG9ZsnA5Gcu/ttAiTpoHllKtnKRMA5jP/Z9F3QRATy.js","https:/framerusercontent.com/modules/4o9FLNqatRjNWvyK8Yzn/GwhvlIW2HRGCw6ROf8ep/Z5xwzpHRd.js","https:/framerusercontent.com/modules/iQWtCrg89L2G2HVdISJo/KW9wkAvKXhlj2zQgmNMz/XK_Cy5AdA.js"],"sourcesContent":["function addUniqueItem(t,e){-1===t.indexOf(e)&&t.push(e)}function removeItem(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const clamp=(t,e,n)=>Math.min(Math.max(n,t),e);const t={duration:.3,delay:0,endDelay:0,repeat:0,easing:\"ease\"};const isNumber=t=>\"number\"===typeof t;const isEasingList=t=>Array.isArray(t)&&!isNumber(t[0]);const wrap=(t,e,n)=>{const o=e-t;return((n-t)%o+o)%o+t};function getEasingForSegment(t,e){return isEasingList(t)?t[wrap(0,t.length,e)]:t}const mix=(t,e,n)=>-n*t+n*e+t;const noop=()=>{};const noopReturn=t=>t;const progress=(t,e,n)=>e-t===0?1:(n-t)/(e-t);function fillOffset(t,e){const n=t[t.length-1];for(let o=1;o<=e;o++){const s=progress(0,e,o);t.push(mix(n,1,s))}}function defaultOffset(t){const e=[0];fillOffset(e,t-1);return e}function interpolate(t,e=defaultOffset(t.length),n=noopReturn){const o=t.length;const s=o-e.length;s>0&&fillOffset(e,s);return s=>{let f=0;for(;f<o-2;f++)if(s<e[f+1])break;let r=clamp(0,1,progress(e[f],e[f+1],s));const c=getEasingForSegment(n,f);r=c(r);return mix(t[f],t[f+1],r)}}const isCubicBezier=t=>Array.isArray(t)&&isNumber(t[0]);const isEasingGenerator=t=>\"object\"===typeof t&&Boolean(t.createAnimation);const isFunction=t=>\"function\"===typeof t;const isString=t=>\"string\"===typeof t;const e={ms:t=>1e3*t,s:t=>t/1e3};\n/*\n  Convert velocity into velocity per second\n\n  @param [number]: Unit per frame\n  @param [number]: Frame duration in ms\n*/function velocityPerSecond(t,e){return e?t*(1e3/e):0}export{addUniqueItem,clamp,defaultOffset,t as defaults,fillOffset,getEasingForSegment,interpolate,isCubicBezier,isEasingGenerator,isEasingList,isFunction,isNumber,isString,mix,noop,noopReturn,progress,removeItem,e as time,velocityPerSecond,wrap};\n\n//# sourceMappingURL=index.es.js.map","import{noopReturn as t,clamp as n}from\"@motionone/utils\";const calcBezier=(t,n,e)=>(((1-3*e+3*n)*t+(3*e-6*n))*t+3*n)*t;const e=1e-7;const i=12;function binarySubdivide(t,n,o,r,c){let u;let a;let s=0;do{a=n+(o-n)/2;u=calcBezier(a,r,c)-t;u>0?o=a:n=a}while(Math.abs(u)>e&&++s<i);return a}function cubicBezier(n,e,i,o){if(n===e&&i===o)return t;const getTForX=t=>binarySubdivide(t,0,1,n,i);return t=>0===t||1===t?t:calcBezier(getTForX(t),e,o)}const steps=(t,e=\"end\")=>i=>{i=\"end\"===e?Math.min(i,.999):Math.max(i,.001);const o=i*t;const r=\"end\"===e?Math.floor(o):Math.ceil(o);return n(0,1,r/t)};export{cubicBezier,steps};\n\n//# sourceMappingURL=index.es.js.map","import{isFunction as t,isCubicBezier as i,noopReturn as e,defaults as s,isEasingGenerator as a,isEasingList as n,interpolate as r}from\"@motionone/utils\";import{cubicBezier as h,steps as o}from\"@motionone/easing\";const l={ease:h(.25,.1,.25,1),\"ease-in\":h(.42,0,1,1),\"ease-in-out\":h(.42,0,.58,1),\"ease-out\":h(0,0,.58,1)};const u=/\\((.*?)\\)/;function getEasingFunction(s){if(t(s))return s;if(i(s))return h(...s);if(l[s])return l[s];if(s.startsWith(\"steps\")){const t=u.exec(s);if(t){const i=t[1].split(\",\");return o(parseFloat(i[0]),i[1].trim())}}return e}class Animation{constructor(t,i=[0,1],{easing:h,duration:o=s.duration,delay:l=s.delay,endDelay:u=s.endDelay,repeat:m=s.repeat,offset:c,direction:p=\"normal\"}={}){this.startTime=null;this.rate=1;this.t=0;this.cancelTimestamp=null;this.easing=e;this.duration=0;this.totalDuration=0;this.repeat=0;this.playState=\"idle\";this.finished=new Promise(((t,i)=>{this.resolve=t;this.reject=i}));h=h||s.easing;if(a(h)){const t=h.createAnimation(i);h=t.easing;i=t.keyframes||i;o=t.duration||o}this.repeat=m;this.easing=n(h)?e:getEasingFunction(h);this.updateDuration(o);const d=r(i,c,n(h)?h.map(getEasingFunction):e);this.tick=i=>{var e;l=l;let s=0;s=void 0!==this.pauseTime?this.pauseTime:(i-this.startTime)*this.rate;this.t=s;s/=1e3;s=Math.max(s-l,0);\"finished\"===this.playState&&void 0===this.pauseTime&&(s=this.totalDuration);const a=s/this.duration;let n=Math.floor(a);let r=a%1;!r&&a>=1&&(r=1);1===r&&n--;const h=n%2;(\"reverse\"===p||\"alternate\"===p&&h||\"alternate-reverse\"===p&&!h)&&(r=1-r);const o=s>=this.totalDuration?1:Math.min(r,1);const m=d(this.easing(o));t(m);const c=void 0===this.pauseTime&&(\"finished\"===this.playState||s>=this.totalDuration+u);if(c){this.playState=\"finished\";null===(e=this.resolve)||void 0===e?void 0:e.call(this,m)}else\"idle\"!==this.playState&&(this.frameRequestId=requestAnimationFrame(this.tick))};this.play()}play(){const t=performance.now();this.playState=\"running\";void 0!==this.pauseTime?this.startTime=t-this.pauseTime:this.startTime||(this.startTime=t);this.cancelTimestamp=this.startTime;this.pauseTime=void 0;this.frameRequestId=requestAnimationFrame(this.tick)}pause(){this.playState=\"paused\";this.pauseTime=this.t}finish(){this.playState=\"finished\";this.tick(0)}stop(){var t;this.playState=\"idle\";void 0!==this.frameRequestId&&cancelAnimationFrame(this.frameRequestId);null===(t=this.reject)||void 0===t?void 0:t.call(this,false)}cancel(){this.stop();this.tick(this.cancelTimestamp)}reverse(){this.rate*=-1}commitStyles(){}updateDuration(t){this.duration=t;this.totalDuration=t*(this.repeat+1)}get currentTime(){return this.t}set currentTime(t){void 0!==this.pauseTime||0===this.rate?this.pauseTime=t:this.startTime=performance.now()-t/this.rate}get playbackRate(){return this.rate}set playbackRate(t){this.rate=t}}export{Animation,getEasingFunction};\n\n//# sourceMappingURL=index.es.js.map","var extendStatics=function(e,t){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])};return extendStatics(e,t)};function __extends(e,t){if(\"function\"!==typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");extendStatics(e,t);function __(){this.constructor=e}e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}var __assign=function(){__assign=Object.assign||function __assign(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e};return __assign.apply(this,arguments)};function __rest(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&\"function\"===typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r}function __decorate(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if(\"object\"===typeof Reflect&&\"function\"===typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i}function __param(e,t){return function(r,n){t(r,n,e)}}function __metadata(e,t){if(\"object\"===typeof Reflect&&\"function\"===typeof Reflect.metadata)return Reflect.metadata(e,t)}function __awaiter(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,o){function fulfilled(e){try{step(n.next(e))}catch(e){o(e)}}function rejected(e){try{step(n.throw(e))}catch(e){o(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))}function __generator(e,t){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:verb(0),throw:verb(1),return:verb(2)},\"function\"===typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function verb(e){return function(t){return step([e,t])}}function step(a){if(r)throw new TypeError(\"Generator is already executing.\");while(i)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;(n=0,o)&&(a=[2&a[0],o.value]);switch(a[0]){case 0:case 1:o=a;break;case 4:i.label++;return{value:a[1],done:false};case 5:i.label++;n=a[1];a=[0];continue;case 7:a=i.ops.pop();i.trys.pop();continue;default:if(!(o=i.trys,o=o.length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1];o=a;break}if(o&&i.label<o[2]){i.label=o[2];i.ops.push(a);break}o[2]&&i.ops.pop();i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e];n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:true}}}var e=Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!(\"get\"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:true,get:function(){return t[r]}});Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r);e[n]=t[r]};function __exportStar(t,r){for(var n in t)\"default\"===n||Object.prototype.hasOwnProperty.call(r,n)||e(r,t,n)}function __values(e){var t=\"function\"===typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"===typeof e.length)return{next:function(){e&&n>=e.length&&(e=void 0);return{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function __read(e,t){var r=\"function\"===typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),i=[];try{while((void 0===t||t-- >0)&&!(n=a.next()).done)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}\n/** @deprecated */function __spread(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(__read(arguments[t]));return e}\n/** @deprecated */function __spreadArrays(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<r;t++)for(var a=arguments[t],i=0,c=a.length;i<c;i++,o++)n[o]=a[i];return n}function __spreadArray(e,t,r){if(r||2===arguments.length)for(var n,o=0,a=t.length;o<a;o++)if(n||!(o in t)){n||(n=Array.prototype.slice.call(t,0,o));n[o]=t[o]}return e.concat(n||Array.prototype.slice.call(t))}function __await(e){return this instanceof __await?(this.v=e,this):new __await(e)}function __asyncGenerator(e,t,r){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var n,o=r.apply(e,t||[]),a=[];return n={},verb(\"next\"),verb(\"throw\"),verb(\"return\"),n[Symbol.asyncIterator]=function(){return this},n;function verb(e){o[e]&&(n[e]=function(t){return new Promise((function(r,n){a.push([e,t,r,n])>1||resume(e,t)}))})}function resume(e,t){try{step(o[e](t))}catch(e){settle(a[0][3],e)}}function step(e){e.value instanceof __await?Promise.resolve(e.value.v).then(fulfill,reject):settle(a[0][2],e)}function fulfill(e){resume(\"next\",e)}function reject(e){resume(\"throw\",e)}function settle(e,t){(e(t),a.shift(),a.length)&&resume(a[0][0],a[0][1])}}function __asyncDelegator(e){var t,r;return t={},verb(\"next\"),verb(\"throw\",(function(e){throw e})),verb(\"return\"),t[Symbol.iterator]=function(){return this},t;function verb(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:__await(e[n](t)),done:\"return\"===n}:o?o(t):t}:o}}function __asyncValues(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=\"function\"===typeof __values?__values(e):e[Symbol.iterator](),t={},verb(\"next\"),verb(\"throw\"),verb(\"return\"),t[Symbol.asyncIterator]=function(){return this},t);function verb(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){t=e[r](t),settle(n,o,t.done,t.value)}))}}function settle(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)}}function __makeTemplateObject(e,t){Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t;return e}var t=Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:true,value:t})}:function(e,t){e.default=t};function __importStar(r){if(r&&r.__esModule)return r;var n={};if(null!=r)for(var o in r)\"default\"!==o&&Object.prototype.hasOwnProperty.call(r,o)&&e(n,r,o);t(n,r);return n}function __importDefault(e){return e&&e.__esModule?e:{default:e}}function __classPrivateFieldGet(e,t,r,n){if(\"a\"===r&&!n)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"===typeof t?e!==t||!n:!t.has(e))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===r?n:\"a\"===r?n.call(e):n?n.value:t.get(e)}function __classPrivateFieldSet(e,t,r,n,o){if(\"m\"===n)throw new TypeError(\"Private method is not writable\");if(\"a\"===n&&!o)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"===typeof t?e!==t||!o:!t.has(e))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===n?o.call(e,r):o?o.value=r:t.set(e,r),r}function __classPrivateFieldIn(e,t){if(null===t||\"object\"!==typeof t&&\"function\"!==typeof t)throw new TypeError(\"Cannot use 'in' operator on non-object\");return\"function\"===typeof e?t===e:e.has(t)}export{__assign,__asyncDelegator,__asyncGenerator,__asyncValues,__await,__awaiter,__classPrivateFieldGet,__classPrivateFieldIn,__classPrivateFieldSet,e as __createBinding,__decorate,__exportStar,__extends,__generator,__importDefault,__importStar,__makeTemplateObject,__metadata,__param,__read,__rest,__spread,__spreadArray,__spreadArrays,__values};\n\n//# sourceMappingURL=tslib.es6.js.map","var n={};Object.defineProperty(n,\"__esModule\",{value:true});n.warning=function(){};n.invariant=function(){};const e=n.__esModule,t=n.warning,r=n.invariant;export default n;export{e as __esModule,r as invariant,t as warning};\n\n//# sourceMappingURL=index.js.map","import{velocityPerSecond as e,time as t,noopReturn as s}from\"@motionone/utils\";const n=5;function calcGeneratorVelocity(t,s,r){const a=Math.max(s-n,0);return e(r-t(a),s-a)}const r={stiffness:100,damping:10,mass:1};const calcDampingRatio=(e=r.stiffness,t=r.damping,s=r.mass)=>t/(2*Math.sqrt(e*s));function hasReachedTarget(e,t,s){return e<t&&s>=t||e>t&&s<=t}const spring=({stiffness:e=r.stiffness,damping:s=r.damping,mass:n=r.mass,from:a=0,to:o=1,velocity:c=0,restSpeed:i=2,restDistance:h=.5}={})=>{c=c?t.s(c):0;const u={done:false,hasReachedTarget:false,current:a,target:o};const d=o-a;const f=Math.sqrt(e/n)/1e3;const l=calcDampingRatio(e,s,n);let g;if(l<1){const e=f*Math.sqrt(1-l*l);g=t=>o-Math.exp(-l*f*t)*((l*f*d-c)/e*Math.sin(e*t)+d*Math.cos(e*t))}else g=e=>o-Math.exp(-f*e)*(d+(f*d-c)*e);return e=>{u.current=g(e);const t=0===e?c:calcGeneratorVelocity(g,e,u.current);const s=Math.abs(t)<=i;const n=Math.abs(o-u.current)<=h;u.done=s&&n;u.hasReachedTarget=hasReachedTarget(a,o,u.current);return u}};const glide=({from:e=0,velocity:s=0,power:n=.8,decay:r=.325,bounceDamping:a,bounceStiffness:o,changeTarget:c,min:i,max:h,restDistance:u=.5,restSpeed:d})=>{r=t.ms(r);const f={hasReachedTarget:false,done:false,current:e,target:e};const isOutOfBounds=e=>void 0!==i&&e<i||void 0!==h&&e>h;const nearestBoundary=e=>void 0===i?h:void 0===h||Math.abs(i-e)<Math.abs(h-e)?i:h;let l=n*s;const g=e+l;const m=void 0===c?g:c(g);f.target=m;m!==g&&(l=m-e);const calcDelta=e=>-l*Math.exp(-e/r);const calcLatest=e=>m+calcDelta(e);const applyFriction=e=>{const t=calcDelta(e);const s=calcLatest(e);f.done=Math.abs(t)<=u;f.current=f.done?m:s};let p;let M;const checkCatchBoundary=e=>{if(isOutOfBounds(f.current)){p=e;M=spring({from:f.current,to:nearestBoundary(f.current),velocity:calcGeneratorVelocity(calcLatest,e,f.current),damping:a,stiffness:o,restDistance:u,restSpeed:d})}};checkCatchBoundary(0);return e=>{let t=false;if(!M&&void 0===p){t=true;applyFriction(e);checkCatchBoundary(e)}if(void 0!==p&&e>p){f.hasReachedTarget=true;return M(e-p)}f.hasReachedTarget=false;!t&&applyFriction(e);return f}};const a=10;const o=1e4;function pregenerateKeyframes(e,t=s){let n;let r=a;let c=e(0);const i=[t(c.current)];while(!c.done&&r<o){c=e(r);i.push(t(c.done?c.target:c.current));void 0===n&&c.hasReachedTarget&&(n=r);r+=a}const h=r-a;1===i.length&&i.push(c.current);return{keyframes:i,duration:h/1e3,overshootDuration:(null!==n&&void 0!==n?n:h)/1e3}}export{calcGeneratorVelocity,glide,pregenerateKeyframes,spring};\n\n//# sourceMappingURL=index.es.js.map","import{MotionValue as e}from\"@motionone/types\";import{noopReturn as t,addUniqueItem as n,isCubicBezier as o,defaults as i,isEasingGenerator as s,isNumber as r,time as a,isEasingList as c,noop as l,removeItem as f,mix as u,getEasingForSegment as d,isString as g,defaultOffset as m,fillOffset as h,progress as p,velocityPerSecond as v,interpolate as y}from\"@motionone/utils\";import{Animation as w,getEasingFunction as E}from\"@motionone/animation\";import{__rest as b}from\"tslib\";import{invariant as S}from\"hey-listen\";import{pregenerateKeyframes as A,calcGeneratorVelocity as O,spring as x,glide as V}from\"@motionone/generators\";const z=new WeakMap;function getAnimationData(e){z.has(e)||z.set(e,{transforms:[],values:new Map});return z.get(e)}function getMotionValue(t,n){t.has(n)||t.set(n,new e);return t.get(n)}const W=[\"\",\"X\",\"Y\",\"Z\"];const L=[\"translate\",\"scale\",\"rotate\",\"skew\"];const T={x:\"translateX\",y:\"translateY\",z:\"translateZ\"};const D={syntax:\"<angle>\",initialValue:\"0deg\",toDefaultUnit:e=>e+\"deg\"};const M={translate:{syntax:\"<length-percentage>\",initialValue:\"0px\",toDefaultUnit:e=>e+\"px\"},rotate:D,scale:{syntax:\"<number>\",initialValue:1,toDefaultUnit:t},skew:D};const k=new Map;const asTransformCssVar=e=>`--motion-${e}`;const B=[\"x\",\"y\",\"z\"];L.forEach((e=>{W.forEach((t=>{B.push(e+t);k.set(asTransformCssVar(e+t),M[e])}))}));const compareTransformOrder=(e,t)=>B.indexOf(e)-B.indexOf(t);const j=new Set(B);const isTransform=e=>j.has(e);const addTransformToElement=(e,t)=>{T[t]&&(t=T[t]);const{transforms:o}=getAnimationData(e);n(o,t);e.style.transform=buildTransformTemplate(o)};const buildTransformTemplate=e=>e.sort(compareTransformOrder).reduce(transformListToString,\"\").trim();const transformListToString=(e,t)=>`${e} ${t}(var(${asTransformCssVar(t)}))`;const isCssVar=e=>e.startsWith(\"--\");const P=new Set;function registerCssVariable(e){if(!P.has(e)){P.add(e);try{const{syntax:t,initialValue:n}=k.has(e)?k.get(e):{};CSS.registerProperty({name:e,inherits:false,syntax:t,initialValue:n})}catch(e){}}}const convertEasing=e=>o(e)?cubicBezierAsString(e):e;const cubicBezierAsString=([e,t,n,o])=>`cubic-bezier(${e}, ${t}, ${n}, ${o})`;const testAnimation=e=>document.createElement(\"div\").animate(e,{duration:.001});const C={cssRegisterProperty:()=>\"undefined\"!==typeof CSS&&Object.hasOwnProperty.call(CSS,\"registerProperty\"),waapi:()=>Object.hasOwnProperty.call(Element.prototype,\"animate\"),partialKeyframes:()=>{try{testAnimation({opacity:[1]})}catch(e){return false}return true},finished:()=>Boolean(testAnimation({opacity:[0,1]}).finished)};const $={};const R={};for(const e in C)R[e]=()=>{void 0===$[e]&&($[e]=C[e]());return $[e]};function hydrateKeyframes(e,t){for(let n=0;n<e.length;n++)null===e[n]&&(e[n]=n?e[n-1]:t());return e}const keyframesList=e=>Array.isArray(e)?e:[e];function getStyleName(e){T[e]&&(e=T[e]);return isTransform(e)?asTransformCssVar(e):e}const H={get:(e,t)=>{t=getStyleName(t);let n=isCssVar(t)?e.style.getPropertyValue(t):getComputedStyle(e)[t];if(!n&&0!==n){const e=k.get(t);e&&(n=e.initialValue)}return n},set:(e,t,n)=>{t=getStyleName(t);isCssVar(t)?e.style.setProperty(t,n):e.style[t]=n}};function stopAnimation(e,t=true){if(e&&\"finished\"!==e.playState)try{if(e.stop)e.stop();else{t&&e.commitStyles();e.cancel()}}catch(e){}}function getDevToolsRecord(){return window.__MOTION_DEV_TOOLS_RECORD}function animateStyle(e,t,n,o={}){const f=getDevToolsRecord();const u=false!==o.record&&f;let d;let{duration:g=i.duration,delay:m=i.delay,endDelay:h=i.endDelay,repeat:p=i.repeat,easing:v=i.easing,direction:y,offset:E,allowWebkitAcceleration:b=false}=o;const S=getAnimationData(e);let A=R.waapi();const O=isTransform(t);O&&addTransformToElement(e,t);const x=getStyleName(t);const V=getMotionValue(S.values,x);const z=k.get(x);stopAnimation(V.animation,!(s(v)&&V.generator)&&false!==o.record);return()=>{const readInitialValue=()=>{var t,n;return null!==(n=null!==(t=H.get(e,x))&&void 0!==t?t:null===z||void 0===z?void 0:z.initialValue)&&void 0!==n?n:0};let i=hydrateKeyframes(keyframesList(n),readInitialValue);if(s(v)){const e=v.createAnimation(i,readInitialValue,O,x,V);v=e.easing;void 0!==e.keyframes&&(i=e.keyframes);void 0!==e.duration&&(g=e.duration)}isCssVar(x)&&(R.cssRegisterProperty()?registerCssVariable(x):A=false);if(A){z&&(i=i.map((e=>r(e)?z.toDefaultUnit(e):e)));1!==i.length||R.partialKeyframes()&&!u||i.unshift(readInitialValue());const t={delay:a.ms(m),duration:a.ms(g),endDelay:a.ms(h),easing:c(v)?void 0:convertEasing(v),direction:y,iterations:p+1,fill:\"both\"};d=e.animate({[x]:i,offset:E,easing:c(v)?v.map(convertEasing):void 0},t);d.finished||(d.finished=new Promise(((e,t)=>{d.onfinish=e;d.oncancel=t})));const n=i[i.length-1];d.finished.then((()=>{H.set(e,x,n);d.cancel()})).catch(l);b||(d.playbackRate=1.000001)}else if(O){i=i.map((e=>\"string\"===typeof e?parseFloat(e):e));1===i.length&&i.unshift(parseFloat(readInitialValue()));const render=t=>{z&&(t=z.toDefaultUnit(t));H.set(e,x,t)};d=new w(render,i,Object.assign(Object.assign({},o),{duration:g,easing:v}))}else{const t=i[i.length-1];H.set(e,x,z&&r(t)?z.toDefaultUnit(t):t)}u&&f(e,t,i,{duration:g,delay:m,easing:v,repeat:p,offset:E},\"motion-one\");V.setAnimation(d);return d}}const getOptions=(e,t)=>e[t]?Object.assign(Object.assign({},e),e[t]):Object.assign({},e);function resolveElements(e,t){var n;if(\"string\"===typeof e)if(t){null!==(n=t[e])&&void 0!==n?n:t[e]=document.querySelectorAll(e);e=t[e]}else e=document.querySelectorAll(e);else e instanceof Element&&(e=[e]);return Array.from(e||[])}const createAnimation=e=>e();const withControls=(e,t,n=i.duration)=>new Proxy({animations:e.map(createAnimation).filter(Boolean),duration:n,options:t},I);const getActiveAnimation=e=>e.animations[0];const I={get:(e,t)=>{const n=getActiveAnimation(e);switch(t){case\"duration\":return e.duration;case\"currentTime\":return a.s((null===n||void 0===n?void 0:n[t])||0);case\"playbackRate\":case\"playState\":return null===n||void 0===n?void 0:n[t];case\"finished\":e.finished||(e.finished=Promise.all(e.animations.map(selectFinished)).catch(l));return e.finished;case\"stop\":return()=>{e.animations.forEach((e=>stopAnimation(e)))};case\"forEachNative\":return t=>{e.animations.forEach((n=>t(n,e)))};default:return\"undefined\"===typeof(null===n||void 0===n?void 0:n[t])?void 0:()=>e.animations.forEach((e=>e[t]()))}},set:(e,t,n)=>{switch(t){case\"currentTime\":n=a.ms(n);case\"currentTime\":case\"playbackRate\":for(let o=0;o<e.animations.length;o++)e.animations[o][t]=n;return true}return false}};const selectFinished=e=>e.finished;function stagger(e=.1,{start:t=0,from:n=0,easing:o}={}){return(i,s)=>{const a=r(n)?n:getFromIndex(n,s);const c=Math.abs(a-i);let l=e*c;if(o){const t=s*e;const n=E(o);l=n(l/t)*t}return t+l}}function getFromIndex(e,t){if(\"first\"===e)return 0;{const n=t-1;return\"last\"===e?n:n/2}}function resolveOption(e,t,n){return\"function\"===typeof e?e(t,n):e}function animate(e,t,n={}){e=resolveElements(e);const o=e.length;const i=[];for(let s=0;s<o;s++){const r=e[s];for(const e in t){const a=getOptions(n,e);a.delay=resolveOption(a.delay,s,o);const c=animateStyle(r,e,t[e],a);i.push(c)}}return withControls(i,n,n.duration)}function calcNextTime(e,t,n,o){var i;return r(t)?t:t.startsWith(\"-\")||t.startsWith(\"+\")?Math.max(0,e+parseFloat(t)):\"<\"===t?n:null!==(i=o.get(t))&&void 0!==i?i:e}function eraseKeyframes(e,t,n){for(let o=0;o<e.length;o++){const i=e[o];if(i.at>t&&i.at<n){f(e,i);o--}}}function addKeyframes(e,t,n,o,i,s){eraseKeyframes(e,i,s);for(let r=0;r<t.length;r++)e.push({value:t[r],at:u(i,s,o[r]),easing:d(n,r)})}function compareByTime(e,t){return e.at===t.at?null===e.value?1:-1:e.at-t.at}function timeline(e,t={}){var n;const o=createAnimationsFromTimeline(e,t);const i=o.map((e=>animateStyle(...e))).filter(Boolean);return withControls(i,t,null===(n=o[0])||void 0===n?void 0:n[3].duration)}function createAnimationsFromTimeline(e,t={}){var{defaultOptions:n={}}=t,o=b(t,[\"defaultOptions\"]);const r=[];const a=new Map;const c={};const l=new Map;let f=0;let u=0;let d=0;for(let t=0;t<e.length;t++){const o=e[t];if(g(o)){l.set(o,u);continue}if(!Array.isArray(o)){l.set(o.name,calcNextTime(u,o.at,f,l));continue}const[r,p,v={}]=o;void 0!==v.at&&(u=calcNextTime(u,v.at,f,l));let y=0;const w=resolveElements(r,c);const E=w.length;for(let e=0;e<E;e++){const t=w[e];const o=getElementSequence(t,a);for(const t in p){const r=getValueSequence(t,o);let a=keyframesList(p[t]);const c=getOptions(v,t);let{duration:l=n.duration||i.duration,easing:f=n.easing||i.easing}=c;if(s(f)){const e=isTransform(t);S(2===a.length||!e,\"spring must be provided 2 keyframes within timeline\");const n=f.createAnimation(a,(()=>\"0\"),e);f=n.easing;void 0!==n.keyframes&&(a=n.keyframes);void 0!==n.duration&&(l=n.duration)}const g=resolveOption(v.delay,e,E)||0;const w=u+g;const b=w+l;let{offset:A=m(a.length)}=c;1===A.length&&0===A[0]&&(A[1]=1);const O=length-a.length;O>0&&h(A,O);1===a.length&&a.unshift(null);addKeyframes(r,a,f,A,w,b);y=Math.max(g+l,y);d=Math.max(b,d)}}f=u;u+=y}a.forEach(((e,t)=>{for(const s in e){const a=e[s];a.sort(compareByTime);const c=[];const l=[];const f=[];for(let e=0;e<a.length;e++){const{at:t,value:n,easing:o}=a[e];c.push(n);l.push(p(0,d,t));f.push(o||i.easing)}if(0!==l[0]){l.unshift(0);c.unshift(c[0]);f.unshift(\"linear\")}if(1!==l[l.length-1]){l.push(1);c.push(null)}r.push([t,s,c,Object.assign(Object.assign(Object.assign({},n),{duration:d,easing:f,offset:l}),o)])}}));return r}function getElementSequence(e,t){!t.has(e)&&t.set(e,{});return t.get(e)}function getValueSequence(e,t){t[e]||(t[e]=[]);return t[e]}function createGeneratorEasing(e){const t=new WeakMap;return(n={})=>{const o=new Map;const getGenerator=(t=0,i=100,s=0,r=false)=>{const a=`${t}-${i}-${s}-${r}`;o.has(a)||o.set(a,e(Object.assign({from:t,to:i,velocity:s,restSpeed:r?.05:2,restDistance:r?.01:.5},n)));return o.get(a)};const getKeyframes=e=>{t.has(e)||t.set(e,A(e));return t.get(e)};return{createAnimation:(e,t,n,o,i)=>{var s,r;let a;const c=e.length;let l=n&&c<=2&&e.every(isNumberOrNull);if(l){const n=e[c-1];const l=1===c?null:e[0];let f=0;let u=0;const d=null===i||void 0===i?void 0:i.generator;if(d){const{animation:t,generatorStartTime:n}=i;const o=(null===t||void 0===t?void 0:t.startTime)||n||0;const r=(null===t||void 0===t?void 0:t.currentTime)||performance.now()-o;const a=d(r).current;u=null!==(s=l)&&void 0!==s?s:a;(1===c||2===c&&null===e[0])&&(f=O((e=>d(e).current),r,a))}else u=null!==(r=l)&&void 0!==r?r:parseFloat(t());const g=getGenerator(u,n,f,null===o||void 0===o?void 0:o.includes(\"scale\"));const m=getKeyframes(g);a=Object.assign(Object.assign({},m),{easing:\"linear\"});if(i){i.generator=g;i.generatorStartTime=performance.now()}}else{const e=getKeyframes(getGenerator(0,100));a={easing:\"ease\",duration:e.overshootDuration}}return a}}}}const isNumberOrNull=e=>\"string\"!==typeof e;const N=createGeneratorEasing(x);const F=createGeneratorEasing(V);const U={any:0,all:1};function inView$1(e,t,{root:n,margin:o,amount:i=\"any\"}={}){if(\"undefined\"===typeof IntersectionObserver)return()=>{};const s=resolveElements(e);const r=new WeakMap;const onIntersectionChange=e=>{e.forEach((e=>{const n=r.get(e.target);if(e.isIntersecting!==Boolean(n))if(e.isIntersecting){const n=t(e);\"function\"===typeof n?r.set(e.target,n):a.unobserve(e.target)}else if(n){n(e);r.delete(e.target)}}))};const a=new IntersectionObserver(onIntersectionChange,{root:n,rootMargin:o,threshold:\"number\"===typeof i?i:U[i]});s.forEach((e=>a.observe(e)));return()=>a.disconnect()}const q=new WeakMap;let K;function getElementSize(e,t){if(t){const{inlineSize:e,blockSize:n}=t[0];return{width:e,height:n}}return e instanceof SVGElement&&\"getBBox\"in e?e.getBBox():{width:e.offsetWidth,height:e.offsetHeight}}function notifyTarget({target:e,contentRect:t,borderBoxSize:n}){var o;null===(o=q.get(e))||void 0===o?void 0:o.forEach((o=>{o({target:e,contentSize:t,get size(){return getElementSize(e,n)}})}))}function notifyAll(e){e.forEach(notifyTarget)}function createResizeObserver(){\"undefined\"!==typeof ResizeObserver&&(K=new ResizeObserver(notifyAll))}function resizeElement(e,t){K||createResizeObserver();const n=resolveElements(e);n.forEach((e=>{let n=q.get(e);if(!n){n=new Set;q.set(e,n)}n.add(t);null===K||void 0===K?void 0:K.observe(e)}));return()=>{n.forEach((e=>{const n=q.get(e);null===n||void 0===n?void 0:n.delete(t);(null===n||void 0===n?void 0:n.size)||(null===K||void 0===K?void 0:K.unobserve(e))}))}}const G=new Set;let _;function createWindowResizeHandler(){_=()=>{const e={width:window.innerWidth,height:window.innerHeight};const t={target:window,size:e,contentSize:e};G.forEach((e=>e(t)))};window.addEventListener(\"resize\",_)}function resizeWindow(e){G.add(e);_||createWindowResizeHandler();return()=>{G.delete(e);!G.size&&_&&(_=void 0)}}function resize(e,t){return\"function\"===typeof e?resizeWindow(e):resizeElement(e,t)}const Z=50;const createAxisInfo=()=>({current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0});const createScrollInfo=()=>({time:0,x:createAxisInfo(),y:createAxisInfo()});const X={x:{length:\"Width\",position:\"Left\"},y:{length:\"Height\",position:\"Top\"}};function updateAxisInfo(e,t,n,o){const i=n[t];const{length:s,position:r}=X[t];const a=i.current;const c=n.time;i.current=e[\"scroll\"+r];i.scrollLength=e[\"scroll\"+s]-e[\"client\"+s];i.offset.length=0;i.offset[0]=0;i.offset[1]=i.scrollLength;i.progress=p(0,i.scrollLength,i.current);const l=o-c;i.velocity=l>Z?0:v(i.current-a,l)}function updateScrollInfo(e,t,n){updateAxisInfo(e,\"x\",t,n);updateAxisInfo(e,\"y\",t,n);t.time=n}function calcInset(e,t){let n={x:0,y:0};let o=e;while(o&&o!==t)if(o instanceof HTMLElement){n.x+=o.offsetLeft;n.y+=o.offsetTop;o=o.offsetParent}else if(o instanceof SVGGraphicsElement&&\"getBBox\"in o){const{top:e,left:t}=o.getBBox();n.x+=t;n.y+=e;while(o&&\"svg\"!==o.tagName)o=o.parentNode}return n}const Y={Enter:[[0,1],[1,1]],Exit:[[0,0],[1,0]],Any:[[1,0],[0,1]],All:[[0,0],[1,1]]};const J={start:0,center:.5,end:1};function resolveEdge(e,t,n=0){let o=0;void 0!==J[e]&&(e=J[e]);if(g(e)){const t=parseFloat(e);e.endsWith(\"px\")?o=t:e.endsWith(\"%\")?e=t/100:e.endsWith(\"vw\")?o=t/100*document.documentElement.clientWidth:e.endsWith(\"vh\")?o=t/100*document.documentElement.clientHeight:e=t}r(e)&&(o=t*e);return n+o}const Q=[0,0];function resolveOffset(e,t,n,o){let i=Array.isArray(e)?e:Q;let s=0;let a=0;if(r(e))i=[e,e];else if(g(e)){e=e.trim();i=e.includes(\" \")?e.split(\" \"):[e,J[e]?e:\"0\"]}s=resolveEdge(i[0],n,o);a=resolveEdge(i[1],t);return s-a}const ee={x:0,y:0};function resolveOffsets(e,t,n){let{offset:o=Y.All}=n;const{target:i=e,axis:s=\"y\"}=n;const r=\"y\"===s?\"height\":\"width\";const a=i!==e?calcInset(i,e):ee;const c=i===e?{width:e.scrollWidth,height:e.scrollHeight}:{width:i.clientWidth,height:i.clientHeight};const l={width:e.clientWidth,height:e.clientHeight};t[s].offset.length=0;let f=!t[s].interpolate;const u=o.length;for(let e=0;e<u;e++){const n=resolveOffset(o[e],l[r],c[r],a[s]);f||n===t[s].interpolatorOffsets[e]||(f=true);t[s].offset[e]=n}if(f){t[s].interpolate=y(m(u),t[s].offset);t[s].interpolatorOffsets=[...t[s].offset]}t[s].progress=t[s].interpolate(t[s].current)}function measure(e,t=e,n){n.x.targetOffset=0;n.y.targetOffset=0;if(t!==e){let o=t;while(o&&o!=e){n.x.targetOffset+=o.offsetLeft;n.y.targetOffset+=o.offsetTop;o=o.offsetParent}}n.x.targetLength=t===e?t.scrollWidth:t.clientWidth;n.y.targetLength=t===e?t.scrollHeight:t.clientHeight;n.x.containerLength=e.clientWidth;n.y.containerLength=e.clientHeight}function createOnScrollHandler(e,t,n,o={}){const i=o.axis||\"y\";return{measure:()=>measure(e,o.target,n),update:t=>{updateScrollInfo(e,n,t);(o.offset||o.target)&&resolveOffsets(e,n,o)},notify:\"function\"===typeof t?()=>t(n):scrubAnimation(t,n[i])}}function scrubAnimation(e,n){e.pause();e.forEachNative(((e,{easing:n})=>{var o,i;if(e.updateDuration){n||(e.easing=t);e.updateDuration(1)}else{const t={duration:1e3};n||(t.easing=\"linear\");null===(i=null===(o=e.effect)||void 0===o?void 0:o.updateTiming)||void 0===i?void 0:i.call(o,t)}}));return()=>{e.currentTime=n.progress}}const te=new WeakMap;const ne=new WeakMap;const oe=new WeakMap;const getEventTarget=e=>e===document.documentElement?window:e;function scroll(e,t={}){var{container:n=document.documentElement}=t,o=b(t,[\"container\"]);let i=oe.get(n);if(!i){i=new Set;oe.set(n,i)}const s=createScrollInfo();const r=createOnScrollHandler(n,e,s,o);i.add(r);if(!te.has(n)){const listener=()=>{const e=performance.now();for(const e of i)e.measure();for(const t of i)t.update(e);for(const e of i)e.notify()};te.set(n,listener);const e=getEventTarget(n);window.addEventListener(\"resize\",listener,{passive:true});n!==document.documentElement&&ne.set(n,resize(n,listener));e.addEventListener(\"scroll\",listener,{passive:true})}const a=te.get(n);const c=requestAnimationFrame(a);return()=>{var t;\"function\"!==typeof e&&e.stop();cancelAnimationFrame(c);const o=oe.get(n);if(!o)return;o.delete(r);if(o.size)return;const i=te.get(n);te.delete(n);if(i){getEventTarget(n).removeEventListener(\"scroll\",i);null===(t=ne.get(n))||void 0===t?void 0:t();window.removeEventListener(\"resize\",i)}}}function hasChanged(e,t){return typeof e!==typeof t||(Array.isArray(e)&&Array.isArray(t)?!shallowCompare(e,t):e!==t)}function shallowCompare(e,t){const n=t.length;if(n!==e.length)return false;for(let o=0;o<n;o++)if(t[o]!==e[o])return false;return true}function isVariant(e){return\"object\"===typeof e}function resolveVariant(e,t){return isVariant(e)?e:e&&t?t[e]:void 0}let ie;function processScheduledAnimations(){if(!ie)return;const e=ie.sort(compareByDepth).map(fireAnimateUpdates);e.forEach(fireNext);e.forEach(fireNext);ie=void 0}function scheduleAnimation(e){if(ie)n(ie,e);else{ie=[e];requestAnimationFrame(processScheduledAnimations)}}function unscheduleAnimation(e){ie&&f(ie,e)}const compareByDepth=(e,t)=>e.getDepth()-t.getDepth();const fireAnimateUpdates=e=>e.animateUpdates();const fireNext=e=>e.next();const motionEvent=(e,t)=>new CustomEvent(e,{detail:{target:t}});function dispatchPointerEvent(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:{originalEvent:n}}))}function dispatchViewEvent(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:{originalEntry:n}}))}const se={isActive:e=>Boolean(e.inView),subscribe:(e,{enable:t,disable:n},{inViewOptions:o={}})=>{const{once:i}=o,s=b(o,[\"once\"]);return inView$1(e,(o=>{t();dispatchViewEvent(e,\"viewenter\",o);if(!i)return t=>{n();dispatchViewEvent(e,\"viewleave\",t)}}),s)}};const mouseEvent=(e,t,n)=>o=>{if(!o.pointerType||\"mouse\"===o.pointerType){n();dispatchPointerEvent(e,t,o)}};const re={isActive:e=>Boolean(e.hover),subscribe:(e,{enable:t,disable:n})=>{const o=mouseEvent(e,\"hoverstart\",t);const i=mouseEvent(e,\"hoverend\",n);e.addEventListener(\"pointerenter\",o);e.addEventListener(\"pointerleave\",i);return()=>{e.removeEventListener(\"pointerenter\",o);e.removeEventListener(\"pointerleave\",i)}}};const ae={isActive:e=>Boolean(e.press),subscribe:(e,{enable:t,disable:n})=>{const onPointerUp=t=>{n();dispatchPointerEvent(e,\"pressend\",t);window.removeEventListener(\"pointerup\",onPointerUp)};const onPointerDown=n=>{t();dispatchPointerEvent(e,\"pressstart\",n);window.addEventListener(\"pointerup\",onPointerUp)};e.addEventListener(\"pointerdown\",onPointerDown);return()=>{e.removeEventListener(\"pointerdown\",onPointerDown);window.removeEventListener(\"pointerup\",onPointerUp)}}};const ce={inView:se,hover:re,press:ae};const le=[\"initial\",\"animate\",...Object.keys(ce),\"exit\"];const fe=new WeakMap;function createMotionState(e={},t){let n;let o=t?t.getDepth()+1:0;const i={initial:true,animate:true};const s={};const r={};for(const n of le)r[n]=\"string\"===typeof e[n]?e[n]:null===t||void 0===t?void 0:t.getContext()[n];const a=false===e.initial?\"animate\":\"initial\";let c=resolveVariant(e[a]||r[a],e.variants)||{},f=b(c,[\"transition\"]);const u=Object.assign({},f);function*animateUpdates(){var t,o;const s=f;f={};const r={};for(const n of le){if(!i[n])continue;const s=resolveVariant(e[n]);if(s)for(const n in s)if(\"transition\"!==n){f[n]=s[n];r[n]=getOptions(null!==(o=null!==(t=s.transition)&&void 0!==t?t:e.transition)&&void 0!==o?o:{},n)}}const a=new Set([...Object.keys(f),...Object.keys(s)]);const c=[];a.forEach((e=>{var t;void 0===f[e]&&(f[e]=u[e]);if(hasChanged(s[e],f[e])){null!==(t=u[e])&&void 0!==t?t:u[e]=H.get(n,e);c.push(animateStyle(n,e,f[e],r[e]))}}));yield;const d=c.map((e=>e())).filter(Boolean);if(!d.length)return;const g=f;n.dispatchEvent(motionEvent(\"motionstart\",g));Promise.all(d.map((e=>e.finished))).then((()=>{n.dispatchEvent(motionEvent(\"motioncomplete\",g))})).catch(l)}const setGesture=(e,t)=>()=>{i[e]=t;scheduleAnimation(d)};const updateGestureSubscriptions=()=>{for(const t in ce){const o=ce[t].isActive(e);const i=s[t];if(o&&!i)s[t]=ce[t].subscribe(n,{enable:setGesture(t,true),disable:setGesture(t,false)},e);else if(!o&&i){i();delete s[t]}}};const d={update:t=>{if(n){e=t;updateGestureSubscriptions();scheduleAnimation(d)}},setActive:(e,t)=>{if(n){i[e]=t;scheduleAnimation(d)}},animateUpdates:animateUpdates,getDepth:()=>o,getTarget:()=>f,getOptions:()=>e,getContext:()=>r,mount:e=>{S(Boolean(e),\"Animation state must be mounted with valid Element\");n=e;fe.set(n,d);updateGestureSubscriptions();return()=>{fe.delete(n);unscheduleAnimation(d);for(const e in s)s[e]()}},isMounted:()=>Boolean(n)};return d}function createStyles(e){const t={};const n=[];for(let o in e){const i=e[o];if(isTransform(o)){T[o]&&(o=T[o]);n.push(o);o=asTransformCssVar(o)}let s=Array.isArray(i)?i[0]:i;const a=k.get(o);a&&(s=r(i)?a.toDefaultUnit(i):i);t[o]=s}n.length&&(t.transform=buildTransformTemplate(n));return t}const camelLetterToPipeLetter=e=>`-${e.toLowerCase()}`;const camelToPipeCase=e=>e.replace(/[A-Z]/g,camelLetterToPipeLetter);function createStyleString(e={}){const t=createStyles(e);let n=\"\";for(const e in t){n+=e.startsWith(\"--\")?e:camelToPipeCase(e);n+=`: ${t[e]}; `}return n}export{Y as ScrollOffset,animate,animateStyle,createMotionState,createStyleString,createStyles,getAnimationData,getStyleName,F as glide,inView$1 as inView,fe as mountedStates,resize,scroll,N as spring,stagger,H as style,timeline,withControls};\n\n//# sourceMappingURL=index.es.js.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{Children,useLayoutEffect,useEffect,useState,useRef,useMemo,useCallback,cloneElement,startTransition,forwardRef,useImperativeHandle}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useReducedMotion,LayoutGroup,useInView,useMotionValue,useTransform,motion,frame}from\"framer-motion\";import{resize}from\"@motionone/dom\";const MAX_DUPLICATED_ITEMS=100;const directionTransformers={left:offset=>`translateX(-${offset}px)`,right:offset=>`translateX(${offset}px)`,top:offset=>`translateY(-${offset}px)`,bottom:offset=>`translateY(${offset}px)`};/**\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function Ticker(props){/* Props */let{slots=[],gap,padding,paddingPerSide,paddingTop,paddingRight,paddingBottom,paddingLeft,speed,hoverFactor,direction,alignment,sizingOptions,fadeOptions,style}=props;const{fadeContent,overflow,fadeWidth,fadeInset,fadeAlpha}=fadeOptions;const{widthType,heightType}=sizingOptions;const paddingValue=paddingPerSide?`${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`:`${padding}px`;/* Checks */const currentTarget=RenderTarget.current();const isCanvas=currentTarget===RenderTarget.canvas||currentTarget===RenderTarget.export;const writingDirection=useWritingDirection();// Remove empty slots (such as hidden layers)\nconst filteredSlots=slots.filter(Boolean);const numChildren=Children.count(filteredSlots);const hasChildren=numChildren>0;const offset=useMotionValue(0);const resolvedDirection=getTickerResolvedDirection(direction===true?\"left\":direction,writingDirection);const isHorizontal=resolvedDirection===\"left\"||resolvedDirection===\"right\";const transformer=directionTransformers[resolvedDirection];const transform=useTransform(offset,transformer);/* Refs and State */const parentRef=useRef(null);const childrenRef=useMemo(()=>{return[{current:null},{current:null}];},[]);const[size,setSize]=useState({parent:null,children:null});/* Arrays */let clonedChildren=null;let dupedChildren=[];/* Duplicate value */let duplicateBy=0;let opacity=0;if(isCanvas){duplicateBy=numChildren?Math.floor(10/numChildren):0;opacity=1;}if(!isCanvas&&hasChildren&&size.parent){duplicateBy=Math.round(size.parent/size.children*2)+1;duplicateBy=Math.min(duplicateBy,MAX_DUPLICATED_ITEMS);opacity=1;}/* Measure parent and child */const measure=useCallback(()=>{if(hasChildren&&parentRef.current){const parentLength=isHorizontal?parentRef.current.offsetWidth:parentRef.current.offsetHeight;const start=childrenRef[0].current?isHorizontal?childrenRef[0].current.offsetLeft:childrenRef[0].current.offsetTop:0;const end=childrenRef[1].current?isHorizontal?childrenRef[1].current.offsetLeft+childrenRef[1].current.offsetWidth:childrenRef[1].current.offsetTop+childrenRef[1].current.offsetHeight:0;const childrenLength=end-start+gap;startTransition(()=>{setSize({parent:parentLength,children:childrenLength});});}},[]);const childrenStyles=isCanvas?{contentVisibility:\"auto\"}:{};/* Add refs to first and last child */if(hasChildren){// TODO: These conditional hooks will be unsafe if hasChildren ever changes outside the canvas.\nif(!isCanvas){/**\n             * Track whether this is the initial resize event. By default this will fire on mount,\n             * which we do in the useEffect. We should only fire it on subsequent resizes.\n             */let initialResize=useRef(true);useLayoutEffect(()=>{frame.read(measure,false,true);return resize(parentRef.current,({contentSize})=>{if(!initialResize.current&&(contentSize.width||contentSize.height)){frame.read(measure,false,true);}initialResize.current=false;});},[]);}clonedChildren=Children.map(filteredSlots,(child,index)=>{let ref;if(index===0){ref=childrenRef[writingDirection===\"rtl\"&&isHorizontal?1:0];}if(index===filteredSlots.length-1){ref=childrenRef[writingDirection===\"rtl\"&&isHorizontal?0:1];}const size={width:widthType?child.props?.width:\"100%\",height:heightType?child.props?.height:\"100%\"};return /*#__PURE__*/_jsx(LayoutGroup,{inherit:\"id\",children:/*#__PURE__*/_jsx(Wrapper,{ref:ref,style:size,children:/*#__PURE__*/cloneElement(child,{style:{...child.props?.style,...size,flexShrink:0,...childrenStyles},layoutId:child.props.layoutId?child.props.layoutId+\"-original-\"+index:undefined},child.props?.children)})});});}const isInView=isCanvas?true:useInView(parentRef);if(!isCanvas){for(let i=0;i<duplicateBy;i++){dupedChildren=dupedChildren.concat(Children.map(filteredSlots,(child,childIndex)=>{const size={width:widthType?child.props?.width:\"100%\",height:heightType?child.props?.height:\"100%\",willChange:!isInView?undefined:\"transform\"};return /*#__PURE__*/_jsx(LayoutGroup,{inherit:\"id\",children:/*#__PURE__*/_jsx(Wrapper,{style:size,children:/*#__PURE__*/cloneElement(child,{key:i+\" \"+childIndex,style:{...child.props?.style,width:widthType?child.props?.width:\"100%\",height:heightType?child.props?.height:\"100%\",flexShrink:0,...childrenStyles},layoutId:child.props.layoutId?child.props.layoutId+\"-dupe-\"+i:undefined},child.props?.children)},i+\"li\"+childIndex)},i+\"lg\"+childIndex);}));}}const animateToValue=size.children+size.children*Math.round(size.parent/size.children);const initialTime=useRef(null);const prevTime=useRef(null);const xOrY=useRef(0);const isHover=useRef(false);const isReducedMotion=useReducedMotion();const listRef=useRef(null);const animationRef=useRef(null);/**\n     * Setup animations\n     */if(!isCanvas){useEffect(()=>{if(isReducedMotion||!animateToValue||!speed){return;}animationRef.current=listRef.current.animate({transform:[transformer(0),transformer(animateToValue)]},{duration:Math.abs(animateToValue)/speed*1e3,iterations:Infinity,iterationStart:writingDirection===\"rtl\"?1:0,easing:\"linear\"});return()=>animationRef.current.cancel();},[hoverFactor,animateToValue,speed,writingDirection]);const playOrPause=useCallback(()=>{if(!animationRef.current)return;const hidden=document.hidden;if(isInView&&!hidden&&animationRef.current.playState===\"paused\"){animationRef.current.play();}else if((!isInView||hidden)&&animationRef.current.playState===\"running\"){animationRef.current.pause();}},[isInView]);useEffect(()=>{playOrPause();},[isInView,hoverFactor,animateToValue,speed]);useEffect(()=>{document.addEventListener(\"visibilitychange\",playOrPause);return()=>{document.removeEventListener(\"visibilitychange\",playOrPause);};},[playOrPause]);}/* Fades */const fadeDirection=isHorizontal?\"to right\":\"to bottom\";const fadeWidthStart=fadeWidth/2;const fadeWidthEnd=100-fadeWidth/2;const fadeInsetStart=clamp(fadeInset,0,fadeWidthStart);const fadeInsetEnd=100-fadeInset;const fadeMask=`linear-gradient(${fadeDirection}, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetStart}%, rgba(0, 0, 0, 1) ${fadeWidthStart}%, rgba(0, 0, 0, 1) ${fadeWidthEnd}%, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetEnd}%)`;/* Empty state */if(!hasChildren){return /*#__PURE__*/_jsxs(\"section\",{style:placeholderStyles,children:[/*#__PURE__*/_jsx(\"div\",{style:emojiStyles,children:\"✨\"}),/*#__PURE__*/_jsx(\"p\",{style:titleStyles,children:\"Connect to Content\"}),/*#__PURE__*/_jsx(\"p\",{style:subtitleStyles,children:\"Add layers or components to infinitely loop on your page.\"})]});}return /*#__PURE__*/_jsx(\"section\",{style:{...containerStyle,opacity:opacity,WebkitMaskImage:fadeContent?fadeMask:undefined,maskImage:fadeContent?fadeMask:undefined,overflow:overflow?\"visible\":\"hidden\",padding:paddingValue},ref:parentRef,children:/*#__PURE__*/_jsxs(motion.ul,{ref:listRef,style:{...containerStyle,gap:gap,top:direction===\"bottom\"&&isValidNumber(animateToValue)?-animateToValue:undefined,left:direction===\"right\"&&isValidNumber(animateToValue)?animateToValue*(writingDirection===\"rtl\"?1:-1):undefined,placeItems:alignment,position:\"relative\",flexDirection:isHorizontal?\"row\":\"column\",...style,willChange:isCanvas||!isInView?\"auto\":\"transform\",transform:transformer(0)},onMouseEnter:()=>{isHover.current=true;if(animationRef.current){// TODO Replace with updatePlaybackRate when Chrome bugs sorted\nanimationRef.current.playbackRate=hoverFactor;}},onMouseLeave:()=>{isHover.current=false;if(animationRef.current){// TODO Replace with updatePlaybackRate when Chrome bugs sorted\nanimationRef.current.playbackRate=1;}},children:[clonedChildren,dupedChildren]})});}const Wrapper=/*#__PURE__*/forwardRef(({children,...props},ref)=>{const innerRef=useRef();const inView=useInView(innerRef);useImperativeHandle(ref,()=>innerRef.current);useEffect(()=>{const current=innerRef.current;if(!current)return;// for a11y: Manage tabIndex on focusable descendants & aria-hidden on the parent.\nif(inView){current.querySelectorAll(\"button,a\").forEach(el=>{const orig=el.dataset.origTabIndex;if(orig)el.tabIndex=orig;else el.removeAttribute(\"tabIndex\");});}else{current.querySelectorAll(\"button,a\").forEach(el=>{const orig=el.getAttribute(\"tabIndex\");if(orig)el.dataset.origTabIndex=orig;el.tabIndex=-1;});}},[inView]);return /*#__PURE__*/_jsx(\"li\",{...props,\"aria-hidden\":!inView,ref:innerRef,children:children});});/* Default Properties */Ticker.defaultProps={gap:10,padding:10,sizingOptions:{widthType:true,heightType:true},fadeOptions:{fadeContent:true,overflow:false,fadeWidth:25,fadeAlpha:0,fadeInset:0},direction:true};/* Property Controls */addPropertyControls(Ticker,{slots:{type:ControlType.Array,title:\"Children\",control:{type:ControlType.ComponentInstance}},speed:{type:ControlType.Number,title:\"Speed\",min:0,max:1e3,defaultValue:100,unit:\"%\",displayStepper:true,step:5},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"left\",\"right\",\"top\",\"bottom\"],optionIcons:[\"direction-left\",\"direction-right\",\"direction-up\",\"direction-down\"],optionTitles:[\"Left\",\"Right\",\"Top\",\"Bottom\"],defaultValue:\"left\",displaySegmentedControl:true},alignment:{type:ControlType.Enum,title:\"Align\",options:[\"flex-start\",\"center\",\"flex-end\"],optionIcons:{direction:{right:[\"align-top\",\"align-middle\",\"align-bottom\"],left:[\"align-top\",\"align-middle\",\"align-bottom\"],top:[\"align-left\",\"align-center\",\"align-right\"],bottom:[\"align-left\",\"align-center\",\"align-right\"]}},defaultValue:\"center\",displaySegmentedControl:true},gap:{type:ControlType.Number,title:\"Gap\"},padding:{title:\"Padding\",type:ControlType.FusedNumber,toggleKey:\"paddingPerSide\",toggleTitles:[\"Padding\",\"Padding per side\"],valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0},sizingOptions:{type:ControlType.Object,title:\"Sizing\",controls:{widthType:{type:ControlType.Boolean,title:\"Width\",enabledTitle:\"Auto\",disabledTitle:\"Stretch\",defaultValue:true},heightType:{type:ControlType.Boolean,title:\"Height\",enabledTitle:\"Auto\",disabledTitle:\"Stretch\",defaultValue:true}}},fadeOptions:{type:ControlType.Object,title:\"Clipping\",controls:{fadeContent:{type:ControlType.Boolean,title:\"Fade\",defaultValue:true},overflow:{type:ControlType.Boolean,title:\"Overflow\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false,hidden(props){return props.fadeContent===true;}},fadeWidth:{type:ControlType.Number,title:\"Width\",defaultValue:25,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeInset:{type:ControlType.Number,title:\"Inset\",defaultValue:0,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeAlpha:{type:ControlType.Number,title:\"Opacity\",defaultValue:0,min:0,max:1,step:.05,hidden(props){return props.fadeContent===false;}}}},hoverFactor:{type:ControlType.Number,title:\"Hover\",min:0,max:1,unit:\"x\",defaultValue:1,step:.1,displayStepper:true,description:\"Slows down the speed while you are hovering.\"}});/* Placeholder Styles */const containerStyle={display:\"flex\",width:\"100%\",height:\"100%\",maxWidth:\"100%\",maxHeight:\"100%\",placeItems:\"center\",margin:0,padding:0,listStyleType:\"none\",textIndent:\"none\"};/* Styles */const placeholderStyles={display:\"flex\",width:\"100%\",height:\"100%\",placeContent:\"center\",placeItems:\"center\",flexDirection:\"column\",color:\"#96F\",background:\"rgba(136, 85, 255, 0.1)\",fontSize:11,overflow:\"hidden\",padding:\"20px 20px 30px 20px\"};const emojiStyles={fontSize:32,marginBottom:10};const titleStyles={margin:0,marginBottom:10,fontWeight:600,textAlign:\"center\"};const subtitleStyles={margin:0,opacity:.7,maxWidth:150,lineHeight:1.5,textAlign:\"center\"};/* Clamp function, used for fadeInset */const clamp=(num,min,max)=>Math.min(Math.max(num,min),max);const isValidNumber=value=>typeof value===\"number\"&&!isNaN(value);function useWritingDirection(){if(!window||!window.document||!window.document.documentElement)return\"ltr\";return window.document.documentElement.dir===\"rtl\"?\"rtl\":\"ltr\";}function getTickerResolvedDirection(direction,writingDirection){if(writingDirection!==\"rtl\")return direction;if(direction===\"left\")return\"right\";if(direction===\"right\")return\"left\";return direction;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Ticker\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"200\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicWidth\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Ticker.map","import{noopReturn as t,clamp as n}from\"@motionone/utils\";const calcBezier=(t,n,e)=>(((1-3*e+3*n)*t+(3*e-6*n))*t+3*n)*t;const e=1e-7;const i=12;function binarySubdivide(t,n,o,r,c){let u;let a;let s=0;do{a=n+(o-n)/2;u=calcBezier(a,r,c)-t;u>0?o=a:n=a}while(Math.abs(u)>e&&++s<i);return a}function cubicBezier(n,e,i,o){if(n===e&&i===o)return t;const getTForX=t=>binarySubdivide(t,0,1,n,i);return t=>0===t||1===t?t:calcBezier(getTForX(t),e,o)}const steps=(t,e=\"end\")=>i=>{i=\"end\"===e?Math.min(i,.999):Math.max(i,.001);const o=i*t;const r=\"end\"===e?Math.floor(o):Math.ceil(o);return n(0,1,r/t)};export{cubicBezier,steps};\n\n//# sourceMappingURL=index.es.js.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion}from\"framer-motion\";import{steps}from\"@motionone/easing\";/**\n * @framerIntrinsicWidth 100\n * @framerIntrinsicHeight 100\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */ export default function Grain(props){const{opacity,style}=props;const keyframesX=[\"0%\",\"-5%\",\"-15%\",\"7%\",\"-5%\",\"-15%\",\"15%\",\"0%\",\"3%\",\"-10%\",];const keyframesY=[\"0%\",\"-10%\",\"5%\",\"-25%\",\"25%\",\"10%\",\"0%\",\"15%\",\"35%\",\"10%\",];const isCanvas=RenderTarget.current()===RenderTarget.canvas;return /*#__PURE__*/ _jsx(\"div\",{style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\"},children:/*#__PURE__*/ _jsx(motion.div,{style:{...containerStyle,opacity:opacity,inset:isCanvas?0:\"-200%\",width:isCanvas?\"100%\":\"400%\",height:isCanvas?\"100%\":\"400%\",position:\"absolute\"},animate:!isCanvas&&{x:keyframesX,y:keyframesY},transition:{ease:steps(10,\"start\"),repeat:Infinity,duration:8}})});};Grain.defaultProps={opacity:.5};addPropertyControls(Grain,{opacity:{title:\"Opacity\",type:ControlType.Number,step:.1,displayStepper:true,max:1,min:0}});const containerStyle={backgroundSize:\"256px 256px\",backgroundRepeat:\"repeat\",background:\"url('https://framerusercontent.com/images/rR6HYXBrMmX4cRpXfXUOvpvpB0.png')\"};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Grain\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicHeight\":\"100\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicWidth\":\"100\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Grain.map","// Generated by Framer (9e04080)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const enabledGestures={Pt_xAziHn:{pressed:true}};const cycleOrder=[\"Pt_xAziHn\",\"FChW5SVy9\",\"ocmAnIYit\",\"y_9I0untO\",\"Qvte5wxe1\",\"czuoOhqP6\"];const serializationHash=\"framer-bLy5r\";const variantClassNames={czuoOhqP6:\"framer-v-10lg67p\",FChW5SVy9:\"framer-v-16135z4\",ocmAnIYit:\"framer-v-1fgw9h\",Pt_xAziHn:\"framer-v-1jizqs1\",Qvte5wxe1:\"framer-v-1bxhju3\",y_9I0untO:\"framer-v-1top3kx\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const transformTemplate1=(_,t)=>`translateX(-50%) ${t}`;const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"About Hover\":\"czuoOhqP6\",\"Project Hover\":\"FChW5SVy9\",\"Template Hover\":\"Qvte5wxe1\",Current:\"y_9I0untO\",Default:\"Pt_xAziHn\",Open:\"ocmAnIYit\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"Pt_xAziHn\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"Pt_xAziHn\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"FChW5SVy9\",\"ocmAnIYit\",\"y_9I0untO\",\"Qvte5wxe1\",\"czuoOhqP6\"].includes(baseVariant))return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1jizqs1\",className,classNames),\"data-framer-name\":\"Default\",layoutDependency:layoutDependency,layoutId:\"Pt_xAziHn\",ref:refBinding,style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"rgba(0, 0, 0, 0)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\",backgroundColor:\"rgb(255, 255, 255)\",borderBottomLeftRadius:259,borderBottomRightRadius:259,borderTopLeftRadius:259,borderTopRightRadius:259,boxShadow:\"none\",...style},variants:{\"Pt_xAziHn-pressed\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",boxShadow:\"none\"},czuoOhqP6:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgb(237, 237, 237)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",borderBottomLeftRadius:100,borderBottomRightRadius:100,borderTopLeftRadius:100,borderTopRightRadius:100,boxShadow:\"0px 0.6021873017743928px 0.6021873017743928px -1.25px rgba(0, 0, 0, 0.18), 0px 2.288533303243457px 2.288533303243457px -2.5px rgba(0, 0, 0, 0.16), 0px 10px 10px -3.75px rgba(0, 0, 0, 0.06)\"},FChW5SVy9:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgb(237, 237, 237)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",borderBottomLeftRadius:100,borderBottomRightRadius:100,borderTopLeftRadius:100,borderTopRightRadius:100,boxShadow:\"0px 0.6021873017743928px 0.6021873017743928px -1.25px rgba(0, 0, 0, 0.18), 0px 2.288533303243457px 2.288533303243457px -2.5px rgba(0, 0, 0, 0.16), 0px 10px 10px -3.75px rgba(0, 0, 0, 0.06)\"},ocmAnIYit:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgb(237, 237, 237)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",borderBottomLeftRadius:100,borderBottomRightRadius:100,borderTopLeftRadius:100,borderTopRightRadius:100,boxShadow:\"0px 0.6021873017743928px 0.6021873017743928px -1.25px rgba(0, 0, 0, 0.36), 0px 2.288533303243457px 2.288533303243457px -2.5px rgba(0, 0, 0, 0.32), 0px 10px 10px -3.75px rgba(0, 0, 0, 0.13)\"},Qvte5wxe1:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgb(237, 237, 237)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",borderBottomLeftRadius:100,borderBottomRightRadius:100,borderTopLeftRadius:100,borderTopRightRadius:100,boxShadow:\"0px 0.6021873017743928px 0.6021873017743928px -1.25px rgba(0, 0, 0, 0.18), 0px 2.288533303243457px 2.288533303243457px -2.5px rgba(0, 0, 0, 0.16), 0px 10px 10px -3.75px rgba(0, 0, 0, 0.06)\"},y_9I0untO:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgb(237, 237, 237)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",borderBottomLeftRadius:100,borderBottomRightRadius:100,borderTopLeftRadius:100,borderTopRightRadius:100,boxShadow:\"0px 0.6021873017743928px 0.6021873017743928px -1.25px rgba(0, 0, 0, 0.36), 0px 2.288533303243457px 2.288533303243457px -2.5px rgba(0, 0, 0, 0.32), 0px 10px 10px -3.75px rgba(0, 0, 0, 0.13)\"}},...addPropertyOverrides({\"Pt_xAziHn-pressed\":{\"data-framer-name\":undefined},czuoOhqP6:{\"data-border\":true,\"data-framer-name\":\"About Hover\"},FChW5SVy9:{\"data-border\":true,\"data-framer-name\":\"Project Hover\"},ocmAnIYit:{\"data-border\":true,\"data-framer-name\":\"Open\"},Qvte5wxe1:{\"data-border\":true,\"data-framer-name\":\"Template Hover\"},y_9I0untO:{\"data-border\":true,\"data-framer-name\":\"Current\"}},baseVariant,gestureVariant),children:isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7U3BhY2UgR3JvdGVzay03MDA=\",\"--framer-font-family\":'\"Space Grotesk\", \"Space Grotesk Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"-0.03em\",\"--framer-line-height\":\"22px\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(18, 19, 21))\"},children:\"VIEW\"})}),className:\"framer-1h2g0mp\",fonts:[\"GF;Space Grotesk-700\"],layoutDependency:layoutDependency,layoutId:\"k8H6xCp5M\",style:{\"--extracted-r6o4lv\":\"rgb(18, 19, 21)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},transformTemplate:transformTemplate1,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({czuoOhqP6:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO0VEIE5pbXBraXNoIFJlZ3VsYXI=\",\"--framer-font-family\":'\"ED Nimpkish Regular\", \"ED Nimpkish Regular Placeholder\", sans-serif',\"--framer-font-size\":\"28px\",\"--framer-letter-spacing\":\"-0.03em\",\"--framer-line-height\":\"20px\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(18, 19, 21))\"},children:\"view about\"})}),fonts:[\"CUSTOM;ED Nimpkish Regular\"],transformTemplate:undefined},FChW5SVy9:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO0VEIE5pbXBraXNoIFJlZ3VsYXI=\",\"--framer-font-family\":'\"ED Nimpkish Regular\", \"ED Nimpkish Regular Placeholder\", sans-serif',\"--framer-font-size\":\"28px\",\"--framer-letter-spacing\":\"-0.6px\",\"--framer-line-height\":\"20px\",\"--framer-text-alignment\":\"center\"},children:\"view\"})}),fonts:[\"CUSTOM;ED Nimpkish Regular\"],transformTemplate:undefined},ocmAnIYit:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO0VEIE5pbXBraXNoIFJlZ3VsYXI=\",\"--framer-font-family\":'\"ED Nimpkish Regular\", \"ED Nimpkish Regular Placeholder\", sans-serif',\"--framer-font-size\":\"18px\",\"--framer-letter-spacing\":\"-0.03em\",\"--framer-line-height\":\"22px\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(18, 19, 21))\"},children:\"open\"})}),fonts:[\"CUSTOM;ED Nimpkish Regular\"],transformTemplate:undefined},Qvte5wxe1:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO0VEIE5pbXBraXNoIFJlZ3VsYXI=\",\"--framer-font-family\":'\"ED Nimpkish Regular\", \"ED Nimpkish Regular Placeholder\", sans-serif',\"--framer-font-size\":\"28px\",\"--framer-letter-spacing\":\"-0.03em\",\"--framer-line-height\":\"20px\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(18, 19, 21))\"},children:\"view live\"})}),fonts:[\"CUSTOM;ED Nimpkish Regular\"],transformTemplate:undefined},y_9I0untO:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO0VEIE5pbXBraXNoIFJlZ3VsYXI=\",\"--framer-font-family\":'\"ED Nimpkish Regular\", \"ED Nimpkish Regular Placeholder\", sans-serif',\"--framer-font-size\":\"18px\",\"--framer-letter-spacing\":\"-0.03em\",\"--framer-line-height\":\"22px\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(18, 19, 21))\"},children:\"here\"})}),fonts:[\"CUSTOM;ED Nimpkish Regular\"],transformTemplate:undefined}},baseVariant,gestureVariant)})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-bLy5r.framer-1de2cd4, .framer-bLy5r .framer-1de2cd4 { display: block; }\",\".framer-bLy5r.framer-1jizqs1 { cursor: pointer; height: 16px; mix-blend-mode: difference; overflow: hidden; position: relative; width: 16px; will-change: var(--framer-will-change-override, transform); }\",\".framer-bLy5r .framer-1h2g0mp { bottom: -20px; flex: none; height: auto; left: 49%; position: absolute; white-space: pre; width: auto; }\",\".framer-bLy5r.framer-v-16135z4.framer-1jizqs1 { align-content: center; align-items: center; cursor: unset; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; mix-blend-mode: unset; padding: 14px 20px 14px 20px; width: min-content; }\",\".framer-bLy5r.framer-v-16135z4 .framer-1h2g0mp { bottom: unset; height: 19px; left: unset; position: relative; }\",\".framer-bLy5r.framer-v-1fgw9h.framer-1jizqs1, .framer-bLy5r.framer-v-1top3kx.framer-1jizqs1 { align-content: center; align-items: center; cursor: unset; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; mix-blend-mode: unset; padding: 8px 12px 8px 12px; width: min-content; }\",\".framer-bLy5r.framer-v-1fgw9h .framer-1h2g0mp, .framer-bLy5r.framer-v-1top3kx .framer-1h2g0mp, .framer-bLy5r.framer-v-1bxhju3 .framer-1h2g0mp, .framer-bLy5r.framer-v-10lg67p .framer-1h2g0mp { bottom: unset; left: unset; position: relative; }\",\".framer-bLy5r.framer-v-1bxhju3.framer-1jizqs1, .framer-bLy5r.framer-v-10lg67p.framer-1jizqs1 { align-content: center; align-items: center; cursor: unset; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; mix-blend-mode: unset; padding: 14px 18px 14px 18px; width: min-content; }\",\".framer-bLy5r.framer-v-1jizqs1.pressed.framer-1jizqs1 { aspect-ratio: 1 / 1; height: var(--framer-aspect-ratio-supported, 12px); width: 12px; }\",'.framer-bLy5r[data-border=\"true\"]::after, .framer-bLy5r [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 16\n * @framerIntrinsicWidth 16\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"FChW5SVy9\":{\"layout\":[\"auto\",\"auto\"]},\"ocmAnIYit\":{\"layout\":[\"auto\",\"auto\"]},\"y_9I0untO\":{\"layout\":[\"auto\",\"auto\"]},\"Qvte5wxe1\":{\"layout\":[\"auto\",\"auto\"]},\"czuoOhqP6\":{\"layout\":[\"auto\",\"auto\"]},\"KmGm99Gnm\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerGF5osqdRk=withCSS(Component,css,\"framer-bLy5r\");export default FramerGF5osqdRk;FramerGF5osqdRk.displayName=\"Circle Cursor\";FramerGF5osqdRk.defaultProps={height:16,width:16};addPropertyControls(FramerGF5osqdRk,{variant:{options:[\"Pt_xAziHn\",\"FChW5SVy9\",\"ocmAnIYit\",\"y_9I0untO\",\"Qvte5wxe1\",\"czuoOhqP6\"],optionTitles:[\"Default\",\"Project Hover\",\"Open\",\"Current\",\"Template Hover\",\"About Hover\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerGF5osqdRk,[{explicitInter:true,fonts:[{family:\"Space Grotesk\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/spacegrotesk/v21/V8mQoQDjQSkFtoMM3T6r8E7mF71Q-gOoraIAEj4PVksmNsFjTDJK.woff2\",weight:\"700\"},{family:\"ED Nimpkish Regular\",source:\"custom\",url:\"https://framerusercontent.com/assets/dQ7fCyOLAN3PTI9GChCFKAwFs.woff2\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerGF5osqdRk\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"16\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"FChW5SVy9\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"ocmAnIYit\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"y_9I0untO\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Qvte5wxe1\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"czuoOhqP6\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"KmGm99Gnm\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerColorSyntax\":\"true\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"16\",\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GF5osqdRk.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{motion}from\"framer-motion\";export function SearchIcon(props){return /*#__PURE__*/ _jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 256 256\",width:props.width,height:props.height,style:{...props.style,color:props.color},children:/*#__PURE__*/ _jsx(\"path\",{d:\"M232.49,215.51,185,168a92.12,92.12,0,1,0-17,17l47.53,47.54a12,12,0,0,0,17-17ZM44,112a68,68,0,1,1,68,68A68.07,68.07,0,0,1,44,112Z\",fill:\"currentColor\"})});}export function ClearIcon(props){return /*#__PURE__*/ _jsxs(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 256 256\",...props,children:[/*#__PURE__*/ _jsx(\"rect\",{width:\"256\",height:\"256\",fill:\"none\"}),/*#__PURE__*/ _jsx(\"path\",{d:\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm37.66,130.34a8,8,0,0,1-11.32,11.32L128,139.31l-26.34,26.35a8,8,0,0,1-11.32-11.32L116.69,128,90.34,101.66a8,8,0,0,1,11.32-11.32L128,116.69l26.34-26.35a8,8,0,0,1,11.32,11.32L139.31,128Z\",fill:\"currentColor\"})]});}export function SpinnerIcon(props){const borderWidth=3;return /*#__PURE__*/ _jsxs(\"div\",{style:{position:\"relative\",...props.style},children:[/*#__PURE__*/ _jsx(motion.div,{animate:{rotate:360},transition:{ease:\"linear\",duration:1,repeat:Infinity},style:{borderRadius:100,backgroundImage:`conic-gradient(from 270deg, transparent 0%, ${props.color} 100%)`,width:\"100%\",height:\"100%\"}}),/*#__PURE__*/ _jsx(\"div\",{style:{backgroundColor:props.backgroundColor,borderRadius:100,position:\"absolute\",top:borderWidth,left:borderWidth,bottom:borderWidth,right:borderWidth}})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"ClearIcon\":{\"type\":\"reactComponent\",\"name\":\"ClearIcon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"SpinnerIcon\":{\"type\":\"reactComponent\",\"name\":\"SpinnerIcon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchIcon\":{\"type\":\"reactComponent\",\"name\":\"SearchIcon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Icons.map","export function Storage(name) {\n    this.ready = new Promise((resolve, reject)=>{\n        var request = window.indexedDB.open(location.origin);\n        request.onupgradeneeded = (e)=>{\n            this.db = e.target[\"result\"];\n            this.db.createObjectStore(\"store\");\n        };\n        request.onsuccess = (e)=>{\n            this.db = e.target[\"result\"];\n            resolve();\n        };\n        request.onerror = (e)=>{\n            this.db = e.target[\"result\"];\n            reject(e);\n        };\n    });\n}\nStorage.prototype.get = function(key) {\n    return this.ready.then(()=>{\n        return new Promise((resolve, reject)=>{\n            var request = this.getStore().get(key);\n            request.onsuccess = (e)=>resolve(e.target.result)\n            ;\n            request.onerror = reject;\n        });\n    });\n};\nStorage.prototype.getStore = function() {\n    return this.db.transaction([\n        \"store\"\n    ], \"readwrite\").objectStore(\"store\");\n};\nStorage.prototype.set = function(key, value) {\n    return this.ready.then(()=>{\n        return new Promise((resolve, reject)=>{\n            var request = this.getStore().put(value, key);\n            request.onsuccess = resolve;\n            request.onerror = reject;\n        });\n    });\n};\nStorage.prototype.delete = function(key, value) {\n    window.indexedDB.deleteDatabase(location.origin);\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"Storage\":{\"type\":\"function\"}}}","// @ts-ignore\nimport{Storage}from\"https://framerusercontent.com/modules/3Xi2AslpcDRhfyCVPmx3/d0Oobr5BHnVqZJQyMdGn/storage.js\";export const hashCode=s=>s.split(\"\").reduce((a,b)=>{a=(a<<5)-a+b.charCodeAt(0);return a&a;},0);export function corsProxy(url){return`https://cors-anywhere.herokuapp.com/${url}`;}export async function cachedResponse(url,cache=new Storage(\"cache\")){const cacheKey=url;const data=await cache.get(cacheKey);if(data){return data;}else{var req=new XMLHttpRequest;req.open(\"GET\",url,true);req.responseType=\"blob\";return new Promise((resolve,reject)=>{req.onload=async function(){if(this.status===200){await cache.set(url,this.response);resolve(this.response);}else{reject(new Error(`Response status ${this.status} ${this.statusText}`));}};req.onerror=function(error){reject(error);};req.send();});}}export async function setCachedData(url,dataToCache,cache=new Storage(\"cache\")){const cacheKey=url;const data=await cache.set(cacheKey,dataToCache);}export async function checkForCachedData(url,cache=new Storage(\"cache\")){const cacheKey=url;const data=await cache.get(cacheKey);if(data){return data;}else{return null;}}\nexport const __FramerMetadata__ = {\"exports\":{\"hashCode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"setCachedData\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"checkForCachedData\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"corsProxy\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"cachedResponse\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./cache.map","/*\n * cache\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/m2nL4qHNbqX9QCxsHsGL/b9aplVZjN51x28yfNK16/cache.js\"\n","import{checkForCachedData,setCachedData}from\"https://framer.com/m/cache-YMiL.js@b9aplVZjN51x28yfNK16\";const VERSION=1;const defaultLocaleId=\"default\";export function isDefaultLocaleId(localeId){return!localeId||localeId===\"default\";}const INDEX_KEY=\"searchIndexCache\";function getIndexKey(localeId){if(isDefaultLocaleId(localeId))return INDEX_KEY;return`${INDEX_KEY}-${localeId}`;}const METADATA_KEY=\"searchCacheMetadata\";function getMetadataKey(localeId){if(isDefaultLocaleId(localeId))return METADATA_KEY;return`${METADATA_KEY}-${localeId}`;}export async function getCachedIndex(localeId,indexHash){// A check here for metadata can be added later if we need to\n// migrate or expire the index. Though most likely, any version change\n// should result in deleting the cache and starting again.\nconst metadataKey=getMetadataKey(localeId);const indexKey=getIndexKey(localeId);const[metadata,cachedIndex]=await Promise.all([checkForCachedData(metadataKey),checkForCachedData(indexKey)]);if(cachedIndex){return{status:indexHash&&metadata?.indexHash===indexHash?\"fresh\":\"stale\",searchIndex:cachedIndex,indexHash:metadata?.indexHash};}return{status:\"miss\"};}export function setCachedIndex(localeId,index,indexHash){const indexKey=getIndexKey(localeId);setCachedData(indexKey,index);const metadata={version:VERSION,timestamp:Date.now(),indexHash};const metadataKey=getMetadataKey(localeId);setCachedData(metadataKey,metadata);}\nexport const __FramerMetadata__ = {\"exports\":{\"isDefaultLocaleId\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCachedIndex\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"setCachedIndex\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./cachedIndex.map","// Fake example data used for when the search component is in preview mode.\n// Note that the `url` value is used as a key in React, so it needs to be unique.\nexport const fakeResults={\"/\":{version:1,title:\"Example Search Result\",description:\"Description of search result.\",keywords:\"\",h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],p:[],url:\"/example-url/\",codeblock:[]},\"/example-1\":{version:1,title:\"Publish your Site to Search\",description:\"Try Site Search to instantly search your Framer site content.\",keywords:\"\",h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],p:[],url:\"/example-url/1/\",codeblock:[]},\"/example-2\":{version:1,title:\"Customise your Site Search\",description:\"Personalize everything from corner radius, to icon weight.\",keywords:\"\",h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],p:[],url:\"/example-url/2/\",codeblock:[]}};\nexport const __FramerMetadata__ = {\"exports\":{\"fakeResults\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./fakeResults.map","// This file is based on the Levenshtein algorithm. Originally from Koen but maybe he\n// got it from somewhere else.\nconst peq=new Uint32Array(65536);const myers_32=(a,b)=>{const n=a.length;const m=b.length;const lst=1<<n-1;let pv=-1;let mv=0;let sc=n;let i=n;while(i--){peq[a.charCodeAt(i)]|=1<<i;}for(i=0;i<m;i++){let eq=peq[b.charCodeAt(i)];const xv=eq|mv;eq|=(eq&pv)+pv^pv;mv|=~(eq|pv);pv&=eq;if(mv&lst){sc++;}if(pv&lst){sc--;}mv=mv<<1|1;pv=pv<<1|~(xv|mv);mv&=xv;}i=n;while(i--){peq[a.charCodeAt(i)]=0;}return sc;};const myers_x=(b,a)=>{const n=a.length;const m=b.length;const mhc=[];const phc=[];const hsize=Math.ceil(n/32);const vsize=Math.ceil(m/32);for(let i=0;i<hsize;i++){phc[i]=-1;mhc[i]=0;}let j=0;for(;j<vsize-1;j++){let mv=0;let pv=-1;const start=j*32;const vlen=Math.min(32,m)+start;for(let k=start;k<vlen;k++){peq[b.charCodeAt(k)]|=1<<k;}for(let i1=0;i1<n;i1++){const eq=peq[a.charCodeAt(i1)];const pb=phc[i1/32|0]>>>i1&1;const mb=mhc[i1/32|0]>>>i1&1;const xv=eq|mv;const xh=((eq|mb)&pv)+pv^pv|eq|mb;let ph=mv|~(xh|pv);let mh=pv&xh;if(ph>>>31^pb){phc[i1/32|0]^=1<<i1;}if(mh>>>31^mb){mhc[i1/32|0]^=1<<i1;}ph=ph<<1|pb;mh=mh<<1|mb;pv=mh|~(xv|ph);mv=ph&xv;}for(let k1=start;k1<vlen;k1++){peq[b.charCodeAt(k1)]=0;}}let mv1=0;let pv1=-1;const start1=j*32;const vlen1=Math.min(32,m-start1)+start1;for(let k2=start1;k2<vlen1;k2++){peq[b.charCodeAt(k2)]|=1<<k2;}let score=m;for(let i2=0;i2<n;i2++){const eq1=peq[a.charCodeAt(i2)];const pb1=phc[i2/32|0]>>>i2&1;const mb1=mhc[i2/32|0]>>>i2&1;const xv1=eq1|mv1;const xh1=((eq1|mb1)&pv1)+pv1^pv1|eq1|mb1;let ph1=mv1|~(xh1|pv1);let mh1=pv1&xh1;score+=ph1>>>m-1&1;score-=mh1>>>m-1&1;if(ph1>>>31^pb1){phc[i2/32|0]^=1<<i2;}if(mh1>>>31^mb1){mhc[i2/32|0]^=1<<i2;}ph1=ph1<<1|pb1;mh1=mh1<<1|mb1;pv1=mh1|~(xv1|ph1);mv1=ph1&xv1;}for(let k3=start1;k3<vlen1;k3++){peq[b.charCodeAt(k3)]=0;}return score;};const distance=(a,b)=>{if(a.length<b.length){const tmp=b;b=a;a=tmp;}if(b.length===0){return a.length;}if(a.length<=32){return myers_32(a,b);}return myers_x(a,b);};const closest=(str,arr)=>{let min_distance=Infinity;let min_index=0;for(let i=0;i<arr.length;i++){const dist=distance(str,arr[i]);if(dist<min_distance){min_distance=dist;min_index=i;}}return arr[min_index];};export{closest,distance};\nexport const __FramerMetadata__ = {\"exports\":{\"closest\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"distance\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./fuzzySearch.map","export const localStorageDebugFlag=(()=>{try{return typeof window!==\"undefined\"&&window.localStorage.__framerDebugSearch===\"true\";}catch(e){// localStorage not available\n}})();const groupsRegex=/[A-Z]{2,}|[A-Z][a-z]+|[a-z]+|[A-Z]\\d*|\\d+/gu;function capitalizeFirstLetter(value){return value.charAt(0).toUpperCase()+value.slice(1);}export function titleCase(value){const groups=value.match(groupsRegex)||[];return groups.map(capitalizeFirstLetter).join(\" \");}export function clampText(text,maxLength){const textLength=text.length;if(textLength<=maxLength){return text;}const slicedText=text.slice(0,maxLength);if(textLength>maxLength){return slicedText+\"…\";}return slicedText;}export function isEmptyObject(object){return Object.keys(object).length===0;}export function createLogger(showOutput){function log(...data){console.log(Date.now(),...data);}function time(label){console.time(label);}function timeEnd(label){console.timeEnd(label);}function noop(){}if(!showOutput){return{log:noop,time:noop,timeEnd:noop};}return{log,time,timeEnd};}export const DEFAULT_FONT_FAMILY=`\"Inter\", system-ui, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;export function getFontFamily(theme){if(theme.inputFont?.fontFamily)return theme.inputFont.fontFamily;if(theme.titleFont?.fontFamily)return theme.titleFont.fontFamily;if(theme.subtitleFont?.fontFamily)return theme.subtitleFont.fontFamily;return DEFAULT_FONT_FAMILY;}export function animationKeyFromLayout(layout){return`${layout}Animation`;}export const safeDocument=typeof document!==\"undefined\"?document:null;export const safeWindow=typeof window!==\"undefined\"?window:null;const metaTagSelector='meta[name=\"framer-search-index\"]';export function getMetaTagContent(){const metaTag=safeDocument?.querySelector(metaTagSelector);if(!metaTag)return undefined;const metaTagContent=metaTag.getAttribute(\"content\");return metaTagContent;}export const checkIfOverLimit=()=>{return getMetaTagContent()===\"limit-reached\";};export function stripLocaleSlugFromPath(url,localeSlug){if(!localeSlug)return url;const localeSlugWithSlash=`/${localeSlug}`;if(url.startsWith(localeSlugWithSlash)){return url.slice(localeSlugWithSlash.length);}}/**\n * @param isHighPriority If true and `scheduler.yield` is not available, the function will either use `postTask` or if also not available, return a resolved promise.\n */export function yieldToMain(isHighPriority){if(\"scheduler\"in window){// see https://github.com/WICG/scheduling-apis/blob/main/explainers/yield-and-continuation.md\n// \"user-blocking\" is the highest priority and creates a paint opportunity.\n// \"user-visible\" is the default, creates a paint opportunity, but has more potential to be delayed (by \"user-blocking\" tasks).\nconst options={priority:isHighPriority?\"user-blocking\":\"user-visible\"};if(\"yield\"in scheduler)return scheduler.yield(options);if(\"postTask\"in scheduler)return scheduler.postTask(()=>{},options);}if(isHighPriority){// `setTimeout` could suffer from being delayed for longer: https://developer.chrome.com/blog/introducing-scheduler-yield-origin-trial#the_problem_with_current_yielding_strategies\n// so for browsers not supporting yield, we guarantee execution for high priority actions, but do not guarantee a paint opportunity as trade-off.\nreturn Promise.resolve();}return new Promise(resolve=>{setTimeout(resolve,0);});}\nexport const __FramerMetadata__ = {\"exports\":{\"safeWindow\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"stripLocaleSlugFromPath\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"titleCase\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"safeDocument\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localStorageDebugFlag\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createLogger\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"animationKeyFromLayout\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"clampText\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"yieldToMain\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getMetaTagContent\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"checkIfOverLimit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getFontFamily\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isEmptyObject\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_FONT_FAMILY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./utils.map","// @ts-ignore\nimport{useLocaleInfo}from\"framer\";import{clamp}from\"framer-motion\";import{useEffect,useState,useTransition}from\"react\";import{SearchResultTitleType}from\"https://framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/wgITiHCOZBBo33pin0wW/SearchModal.js\";import{getCachedIndex,setCachedIndex,isDefaultLocaleId}from\"https://framerusercontent.com/modules/uU1mtMKXsrVAg8N5hW7w/v7gDLwKJgQ5vAsFHxY4H/cachedIndex.js\";import{fakeResults}from\"https://framerusercontent.com/modules/K9JZRwJcE6slDAf8rUmh/mJ54py1Ecnn1RoC4N1m4/fakeResults.js\";import{distance}from\"https://framerusercontent.com/modules/TwRgbWuhHeB95MPifel4/YW8Hlm59FG3PajbrVsaR/fuzzySearch.js\";import{createLogger,localStorageDebugFlag,safeDocument,safeWindow,stripLocaleSlugFromPath,yieldToMain}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";const{log,time,timeEnd}=createLogger(localStorageDebugFlag);function isValidUrl(url){try{new URL(url);return true;}catch(_error){return false;}}const splitWordsRegex=(()=>{try{// Regex lookbehind is used to ignore ampersands when splitting\n// words. For example \"H&M\" will not be split and is considered as\n// one word, but \"H & M\" will be split.\n// However, some browsers (like Safari iOS 15) don't support\n// lookbehind and will crash. When it's not supported, fallback to\n// a safer regex that always splits ampersands.\nconst regex=RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+(?<!\\\\p{L}&)(?!&\\\\p{L})\",\"u\");\"\".split(regex);return regex;}catch{log(\"Falling back to regex without lookbehind\");return RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+\",\"u\");}})();function splitWords(text){return text.split(splitWordsRegex);}function getUniqueWords(str){const words=splitWords(str).filter(word=>word.trim()&&word.length>0);return new Set(words);}const normalizeRegex=/[\\u0300-\\u036f]/g;/**\n * Replace accented characters with equivilant non-accented versions and\n * make everything lowercase.\n */function getNormalizedString(text){if(Array.isArray(text)){return text.map(getNormalizedString);}return text.normalize(\"NFD\")// From: https://stackoverflow.com/a/37511463\n.replace(normalizeRegex,\"\").toLowerCase();}const normalizedItemCache=new WeakMap;function getNormalizedItemFromCache(item){const cached=normalizedItemCache.get(item);if(cached)return cached;const normalizedItem=getNormalizedItem(item);normalizedItemCache.set(item,normalizedItem);return normalizedItem;}function getNormalizedItem(item){const normalizedItem={};for(const key in item){if(item.hasOwnProperty(key)){const value=item[key];if(typeof value===\"string\"){normalizedItem[key]=getNormalizedString(value);continue;}if(Array.isArray(value)){normalizedItem[key]=getNormalizedString(value);continue;}normalizedItem[key]=value;}}return normalizedItem;}function getMatchRange(currentRange,start,end){const result={...currentRange};if(start<result.start){result.start=start;}if(end>result.end){result.end=end;}return result;}/**\n * Score index item based on the contents of it's fields such as title, description, headings etc.\n *\n * Note that this does not normalize the item or query. Normalization is expected to happen\n * before passing the data into this.\n */function getScoreForSearchIndexItem(item,query,words,fullQuery){let score=0;const match={title:{start:Infinity,end:0},description:{start:Infinity,end:0}};const urlWords=getUniqueWords(item.url);// Match query based on words in the URL so that random strings inside\n// other strings are not matched.\nif(urlWords.has(query)){score+=10;}// Really boost single word queries that match single word URLs.\nif(words.size===1&&urlWords.size===1&&urlWords.values().next().value===query){score+=score*5;}// Score shorter URLs higher so `/pricing` is before `/lala/pricing`.\nif(score>0){const splitLength=item.url.split(\"/\").length;score+=clamp(10-splitLength,0,splitLength);}const titleWords=getUniqueWords(item.title);// Prefer full word matches in the title.\nif(titleWords.has(query)){score+=10;}const titleIndex=item.title.indexOf(query);if(titleIndex!==-1){score+=10;// TODO: Matches are currently not used, but they can be used in the\n// future to add text highlighting.\nmatch.title=getMatchRange(match.title,titleIndex,titleIndex+query.length);}// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(item.title,fullQuery)<=2){score+=score*10;}// Fuzzy match full words in the title.\nfor(const titleWord of titleWords){const distanceScore=distance(query,titleWord);// Small distance score helps with small typos.\nif(distanceScore<=2){score+=10;}}const headings=[...item.h1,...item.h2,...item.h3,...item.h4,...item.h5,...item.h6];for(const heading of headings){const headingWords=getUniqueWords(heading);// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(heading,fullQuery)<=2){score+=score*10;}// Bias headings that start with the query as this helps when\n// you know the title you are searching for.\nif(heading.startsWith(query)){score+=10;}if(headingWords.has(query)){score+=10;}if(heading.includes(query)){score+=1;}// Fuzzy match full words in headings.\nfor(const headingWord of headingWords){const distanceScore=distance(query,headingWord);if(distanceScore<=2){score+=1;}}}const descriptionIndex=item.description.indexOf(query);if(descriptionIndex!==-1){score+=10;match.description=getMatchRange(match.description,descriptionIndex,descriptionIndex+query.length);}for(const p of item.p){if(p.includes(query)){score+=.5;}}for(const codeblock of item.codeblock){// If the full query is close to being the codeblock, score this highly as\n// the user is most likely looking for that exact code.\nif(distance(codeblock,fullQuery)<=2){score*=10;}if(codeblock.includes(fullQuery)){score+=10;}if(codeblock.includes(query)){score+=.5;}}return{score,match};}function getSearchIndexItemScore(item,normalizedQuery){const normalizedItem=getNormalizedItemFromCache(item);const queryWords=getUniqueWords(normalizedQuery);let total=0;for(const queryWord of queryWords){const{score}=getScoreForSearchIndexItem(normalizedItem,queryWord,queryWords,normalizedQuery);total+=score;}return total;}function useRawSearch(index,query,settings){const[results,setResults]=useState(null);const[,startTransition]=useTransition();useEffect(()=>{const abortController=new AbortController;executeRawSearch(index,query,settings,abortController.signal).then(res=>{if(!abortController.signal.aborted){startTransition(()=>{setResults(res);});}}).catch(err=>{if(err.name!==\"AbortError\"){console.error(\"Search failed:\",err);}});return()=>{abortController.abort();};},[index,query]);return{results:results??[]};}const QUANTUM=32// ms, 2*16ms (2 frames on 60 hz)\n;async function executeRawSearch(index,query,settings,signal){const path=safeWindow?.location.pathname;time(\"query\");const normalizedQuery=getNormalizedString(query);const results=[];const items=Object.values(index);let deadline=performance.now()+QUANTUM;async function yieldToMainIfNecessary(){if(performance.now()>=deadline){await yieldToMain();deadline=performance.now()+QUANTUM;}}for(let i=0;i<items.length;++i){if(performance.now()>=deadline){await yieldToMainIfNecessary();deadline=performance.now()+QUANTUM;}if(signal?.aborted)return[];const item=items[i];const score=getSearchIndexItemScore(item,normalizedQuery);if(score>(settings.minimumScore||0)&&(!path||item.url!==path)){const heading=item.h1.length&&item.h1[0];const title=settings?.titleType===SearchResultTitleType.Title?item.title:heading?heading:item.title;// Convert index item to result item.\nresults.push({url:item.url,title,description:item.description,body:[...item.p,item.codeblock].join(\" \"),score});}}await yieldToMainIfNecessary();if(signal?.aborted)return[];const sorted=results.sort((itemA,itemB)=>itemB.score-itemA.score);timeEnd(\"query\");await yieldToMainIfNecessary();if(signal?.aborted)return[];return results.slice(0,20);}function getIndexedScopedToUrl(index,rawUrlScope,localeSlug){const scopedIndex={};const baseScopeUrlHasVariable=rawUrlScope.includes(\":\");const urlUpToPathVariable=rawUrlScope.split(\":\")[0];const urlScope=urlUpToPathVariable.length>1?urlUpToPathVariable:\"\";for(const url in index){const strippedURL=stripLocaleSlugFromPath(url,localeSlug);if(!strippedURL.startsWith(urlScope)){continue;}if(baseScopeUrlHasVariable&&url.length<=urlScope.length){continue;}scopedIndex[url]=index[url];}return scopedIndex;}export function useSearch(query,settings){const[searchIndex,_setSearchIndex]=useState({});const[status,setStatus]=useState(\"loading\");const{results}=useRawSearch(searchIndex,query,settings);const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;// Seperate setter function so that the URL scope is always applied\n// to indexes loaded from either the cache or network.\nfunction setSearchIndex(index,options={ignoreScope:false}){let scopedIndex=index;if(settings.urlScope&&!options.ignoreScope){scopedIndex=getIndexedScopedToUrl(index,settings.urlScope,activeLocale?.slug);log(\"Using URL scope\",settings.urlScope);}_setSearchIndex(scopedIndex);}useEffect(()=>{async function loadSearchIndex(){setStatus(\"loading\");const baseUrl=getBaseUrl(\"framer-search-index\");if(!baseUrl){setStatus(\"no-meta-tag-found\");setSearchIndex(fakeResults,{ignoreScope:true});log(\"No meta tag found\");return;}// If a cached index exists, use the cached version until the latest one from the network loads.\nconst cacheResult=await getCachedIndex(localeId,baseUrl);if(cacheResult.status!==\"miss\"){setSearchIndex(cacheResult.searchIndex);setStatus(\"loading-with-cache\");log(\"Using cached index\");if(cacheResult.status===\"fresh\")return;}const searchIndexUrl=getSearchIndexUrl(baseUrl,localeId);const response=await fetch(searchIndexUrl);// Happy case.\nif(response.ok){const downloadedIndex=await response.json();setSearchIndex(downloadedIndex);setCachedIndex(localeId,downloadedIndex,baseUrl);setStatus(\"success\");log(\"Using downloaded index\");return;}// Unexpected error.\n// Our \"sites\" CDN currently returns 403s for missing files.\nconst isNotFound=response.status===403||response.status===404;if(!isNotFound){throw new Error(response.statusText);}// Index is likely still being generated.\nlog(\"Index not found\");const fallbackBaseUrl=getBaseUrl(\"framer-search-index-fallback\");if(!fallbackBaseUrl){if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"No fallback, no cache\");}else{log(\"No fallback, using cache\");}return;}const fallbackSearchIndexUrl=getSearchIndexUrl(fallbackBaseUrl,localeId);const fallbackResponse=await fetch(fallbackSearchIndexUrl);if(fallbackResponse.ok){const downloadedIndex=await fallbackResponse.json();setSearchIndex(downloadedIndex);// It's safe to cache the fallback because if we're here, current cache is empty or stale.\nsetCachedIndex(localeId,downloadedIndex,fallbackBaseUrl);setStatus(\"success\");log(\"Using downloaded fallback index\");return;}if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"Fallback failed, no cache\");}else{log(\"Fallback failed, using cache\");}}loadSearchIndex().catch(error=>{// TODO: Check for error type here. If it's a network error,\n// we could do a few retries.\nsetStatus(\"error\");log(\"Failed to load search index\",error);});},[localeId]);log({status,results});return{results,status};}function getBaseUrl(name){return safeDocument?.querySelector(`meta[name=\"${name}\"]`)?.getAttribute(\"content\");}function getSearchIndexUrl(baseURL,localeId){if(isDefaultLocaleId(localeId))return baseURL;return baseURL.replace(\".json\",`-${localeId}.json`);}\nexport const __FramerMetadata__ = {\"exports\":{\"SearchIndex\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useSearch\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","export var Browser;(function(Browser){var isTouch=Browser.isTouch=()=>\"ontouchstart\"in window||navigator.maxTouchPoints>0;var isChrome=Browser.isChrome=()=>navigator.userAgent.toLowerCase().includes(\"chrome/\");var isWebKit=Browser.isWebKit=()=>navigator.userAgent.toLowerCase().includes(\"applewebkit/\");var isSafari=Browser.isSafari=()=>isWebKit()&&!isChrome();var isSafariDesktop=Browser.isSafariDesktop=()=>isSafari()&&!isTouch();var isWindows=Browser.isWindows=()=>/Win/.test(navigator.platform);var isMacOS=Browser.isMacOS=()=>/Mac/.test(navigator.platform);})(Browser||(Browser={}));\nexport const __FramerMetadata__ = {\"exports\":{\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./browser.map","// From: @framerjs/fresco/src/components/utils/useCallbackOnMouseMove.ts\nimport{useRef,useCallback}from\"react\";import{Browser}from\"https://framerusercontent.com/modules/PJVBcBLmDteTEAZh3J9Z/keXJyjyE9VnzUcDMayjg/browser.js\";/**\n * Webkit fires mousemove events if the pointer's coordination changes relative\n * to its container (e.g. if the container scrolls), or when a modifier key is\n * pressed, mousemove would fire even if the cursor did not actually move.\n * This helper compares the cursor position between mouse events, and fire the\n * callback only when its position changes.\n */ export const useCallbackOnMouseMove=(callback,mousePositionRef)=>{const prevPositionRef=useRef(null);return useCallback(event=>{if(!Browser.isSafari())return callback(event);const ref=mousePositionRef?mousePositionRef:prevPositionRef;const{clientX,clientY}=event;const prevCursorPosition=ref.current;ref.current={x:clientX,y:clientY};// Ignore mouse moves unless we have a position. Else it might be an\n// element that appears behind the mouse without the mouse moving.\nif(!prevCursorPosition){return;}if(prevCursorPosition.x!==clientX||prevCursorPosition.y!==clientY){return callback(event);}},[mousePositionRef,callback]);};\nexport const __FramerMetadata__ = {\"exports\":{\"useCallbackOnMouseMove\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Point\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useCallbackOnMouseMove.map","// Safari does not support `element.scrollIntoView({ block: \"nearest\" })`, so this\n// is a workaround for that.\nexport function scrollIntoView(targetElement,scrollElement,/** Additional spacing to add from the top or bottom of the scroll element viewport. */ {offsetTop,offsetBottom}){const targetElementBounds=targetElement.getBoundingClientRect();const scrollElementBounds=scrollElement.getBoundingClientRect();if(targetElementBounds.top<scrollElementBounds.top){const difference=scrollElementBounds.top-targetElementBounds.top;scrollElement.scrollTop=scrollElement.scrollTop-difference-offsetTop;}else if(targetElementBounds.bottom>scrollElementBounds.bottom){const topAligned=scrollElementBounds.top-targetElementBounds.top;const minOffset=scrollElement.scrollTop-topAligned-offsetTop;const bottomAligned=targetElementBounds.bottom-scrollElementBounds.bottom;const offset=scrollElement.scrollTop+bottomAligned+offsetBottom;scrollElement.scrollTop=Math.min(minOffset,offset);}}\nexport const __FramerMetadata__ = {\"exports\":{\"scrollIntoView\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./scrollIntoView.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useSearch}from\"https://framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/IOZYtsQMauhTmjY894DM/useSearch.js\";import React,{useEffect,useState,useMemo,forwardRef,useRef,useDeferredValue,useLayoutEffect,useCallback,useImperativeHandle}from\"react\";import{Browser}from\"https://framerusercontent.com/modules/PJVBcBLmDteTEAZh3J9Z/keXJyjyE9VnzUcDMayjg/browser.js\";import{motion,clamp,useAnimate}from\"framer-motion\";import{SearchIcon,ClearIcon,SpinnerIcon}from\"https://framerusercontent.com/modules/LV9trClbmNwd5PVj9l8y/L4rFqMGNzGSwRZpGTGF3/Icons.js\";import{clampText,getFontFamily,localStorageDebugFlag,animationKeyFromLayout,stripLocaleSlugFromPath}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";import{useCallbackOnMouseMove}from\"https://framerusercontent.com/modules/Gzef0nFihI9m9vZG45th/lIUxbZcreiDm2GzUkt3y/useCallbackOnMouseMove.js\";import{scrollIntoView}from\"https://framerusercontent.com/modules/eAnjm75CdfYT1Zz4BIaz/7KDSfnnyD1T3Ap75L4m8/scrollIntoView.js\";import{useLocaleInfo,// @ts-expect-error Internal API\nuseRouter,// @ts-expect-error Internal API\ninferInitialRouteFromPath}from\"framer\";const MAX_DESCRIPTION_LENGTH=120;const MODAL_MAX_HEIGHT=496;const VERTICAL_SPACING_MULTIPLIER=.6;function ClearButton({theme,type,onClick,text}){const shouldDisplayIcon=type===\"icon\";const iconOrText=shouldDisplayIcon?/*#__PURE__*/_jsx(ClearIcon,{style:{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize}}):text;return /*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,fontSize:theme&&theme.titleFont&&theme.titleFont.fontSize?theme.titleFont.fontSize:15},children:/*#__PURE__*/_jsx(\"button\",{className:\"__framer-search-clear-button\",onClick:onClick,style:{fontFamily:\"inherit\",border:\"none\",background:\"none\",cursor:\"pointer\",display:\"flex\",textTransform:\"uppercase\",color:theme.inputIconColor,fontSize:\"0.75em\",padding:0},children:iconOrText})});}function Divider({theme,type}){const styles={background:theme.foregroundColor,height:1,flexShrink:0,opacity:.05};if(type===\"contained\"&&theme){styles.marginLeft=theme.horizontalSpacing;styles.marginRight=theme.horizontalSpacing;}return /*#__PURE__*/_jsx(\"div\",{style:styles});}export const Input=/*#__PURE__*/forwardRef(function Input(props,ref){const{value=\"\",status,autofocus,theme,placeholder,iconType,clearButtonType,onChange}=props;const[inputValue,setInputValue]=useState(value);const[isFocused,setIsFocused]=useState(false);const inputRef=useRef();useImperativeHandle(ref,()=>inputRef.current);React.useLayoutEffect(()=>{// Runs on unmount, fixes a bug in Safari that scrolls to the bottom\n// of the page when the input unmounts.\nreturn()=>{const inputElement=inputRef.current;if(!inputElement||inputElement!==document.activeElement)return;inputElement.blur();};},[]);const handleInputClick=()=>{if(inputRef.current){inputRef.current.focus();}};const handleClearClick=()=>{setInputValue(\"\");};useEffect(()=>{onChange(inputValue);},[inputValue]);const hasInputText=inputValue.length>0;const showClearButton=inputValue.length>0&&clearButtonType&&clearButtonType!==\"none\";const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const searchIcon=iconType===\"custom\"&&theme.inputIconImage?/*#__PURE__*/_jsx(\"img\",{alt:\"icon alongside the Site Search input\",src:theme.inputIconImage.src,width:theme.inputIconSize,height:theme.inputIconSize,decoding:\"async\"}):/*#__PURE__*/_jsx(SearchIcon,{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize});return /*#__PURE__*/_jsxs(\"div\",{role:\"search\",style:{...inputContainerStyle,fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,gap:12,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,touchAction:\"none\"},onClick:handleInputClick,children:[/*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,display:\"flex\"},children:status===\"loading\"&&inputValue?/*#__PURE__*/_jsx(SpinnerIcon,{color:theme.inputIconColor,backgroundColor:theme.backgroundColor,style:{height:theme&&theme.inputIconSize,width:theme&&theme.inputIconSize}}):searchIcon}),/*#__PURE__*/_jsx(\"input\",{ref:inputRef,spellCheck:false,autoFocus:autofocus,style:{...inputStyle,WebkitTapHighlightColor:\"rgba(0,0,0,0)\",color:theme.foregroundColor,lineHeight:\"2em\",verticalAlign:\"baseline\",...theme.titleFont,...theme.inputFont,fontSize:theme.inputFontSize,// @ts-ignore\n\"--framer-search-placeholder-color\":theme.placeholderColor},onFocus:()=>{const scrollOffset=document.documentElement.scrollTop;document.documentElement.scrollTop=scrollOffset;},placeholder:placeholder,value:inputValue,onChange:()=>setInputValue(inputRef.current.value)}),showClearButton&&/*#__PURE__*/_jsx(ClearButton,{theme:theme,type:props.clearButtonType,text:props.clearButtonText,onClick:handleClearClick})]});});const inputContainerStyle={display:\"inline-flex\",alignItems:\"center\",flexShrink:0};const inputStyle={outline:\"none\",border:\"none\",background:\"transparent\",fontWeight:500,height:\"2em\",padding:0,width:\"100%\"};export const ResultRow=/*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function ResultRow(props,ref){const{index,result,prevMousePositionRef,type=\"contained\",subtitleType=\"path\",selected=false,theme,localeSlug,style,onMouseMove,onPointerDown,onNavigateTo}=props;const{url,title,score}=result;const urlPath=useMemo(()=>{return stripLocaleSlugFromPath(url,localeSlug);},[url,localeSlug]);const handleMouseMove=useCallbackOnMouseMove(event=>onMouseMove(event,index),prevMousePositionRef);const isContained=type===\"contained\";const borderRadius=isContained?clamp(0,Infinity,theme.borderRadius-theme.spacing):0;const subtitleText=subtitleType===\"path\"?urlPath:clampText(result.description,MAX_DESCRIPTION_LENGTH);const handleClick=event=>{event.preventDefault();onNavigateTo(result.url);};const focusTrap=event=>{event.preventDefault();};return /*#__PURE__*/_jsx(\"a\",{ref:ref,style:{textDecoration:\"none\"},href:result.url,onClick:handleClick,onMouseMove:handleMouseMove,onMouseDown:focusTrap,onPointerDown:event=>onPointerDown(event,index),children:/*#__PURE__*/_jsxs(\"li\",{style:{...resultContainer,...style,paddingTop:isContained?12:16,paddingBottom:isContained?12:16,color:theme.foregroundColor,position:\"relative\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing},children:[/*#__PURE__*/_jsx(\"div\",{style:{backgroundColor:theme.foregroundColor,position:\"absolute\",opacity:selected?.06:0,borderRadius,left:theme&&isContained?theme.spacing:0,right:theme&&isContained?theme.spacing:0,top:0,bottom:0}}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",gap:4},children:[/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,...theme.titleFont,lineHeight:\"1.4em\"},children:title}),/*#__PURE__*/_jsxs(\"p\",{style:{margin:0,color:theme.subtitleColor,...theme.subtitleFont,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",lineHeight:\"1.4em\"},children:[localStorageDebugFlag?score:\"\",\" \",subtitleText]})]})]},result.url)});}));/**\n * Flexible gap used inside a flexbox layout to push down the quick menu\n * by 20% of the screen height, but also allow it to collapse to zero if\n * there is not enough vertical room.\n */function QuickMenuSpacer({onClick}){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",flexBasis:\"20vh\"},onClick:onClick});}const layoutContainerStyle={display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"flex-start\",gap:15,overflow:\"visible\"};function LayoutContainer({layoutType,theme,onKeyDown,onDismiss,children,modalOptions}){const layoutStyles=getLayoutBaseStyles(layoutType,theme);const style={...layoutContainerStyle,...layoutStyles,willChange:\"transform\",marginTop:layoutType===\"FixedTop\"?theme.offsetTop:0,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\"};const innerStyle={...layoutContainerStyle,...layoutStyles,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",gap:layoutType===\"Sidebar\"?0:theme.gapBetweenStatusAndSearch,backgroundColor:layoutType===\"Sidebar\"?theme.backgroundColor:\"transparent\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\",originX:.5,originY:.5};function getContainerAnimation(){switch(layoutType){case\"FixedTop\":{const key=animationKeyFromLayout(\"FixedTop\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{y:-10,opacity:.2,transition:{duration:Browser.isTouch()?0:.15}};}break;}case\"QuickMenu\":{const key=animationKeyFromLayout(\"QuickMenu\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{scale:.95,opacity:0,y:0,x:0,rotate:0,transition:{type:\"spring\",stiffness:600,damping:40}};}break;}case\"Sidebar\":{const key=animationKeyFromLayout(\"Sidebar\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{x:-10,opacity:0,transition:{duration:.15}};}break;}}}const containerAnimation=getContainerAnimation();return /*#__PURE__*/_jsxs(\"div\",{style:style,onKeyDown:onKeyDown,onClick:event=>event.stopPropagation(),children:[layoutType===\"QuickMenu\"&&/*#__PURE__*/_jsx(QuickMenuSpacer,{onClick:onDismiss}),/*#__PURE__*/_jsx(motion.div,{initial:containerAnimation,animate:{opacity:1,scale:1,x:0,y:0,rotate:0},transition:containerAnimation?containerAnimation.transition:undefined,exit:{opacity:0,transition:{duration:0}},style:innerStyle,children:children})]});}function ModalContainer({layoutType,theme,children,heightIsStatic,heightTransition,heightDeps}){const style={// This `willChange` is required to avoid weird rendering issues where\n// parts of the search window won't redraw, which we observed in Safari 16.4.\nwillChange:\"transform\",backgroundColor:theme.backgroundColor,color:theme.foregroundColor,borderRadius:layoutType===\"QuickMenu\"?theme.borderRadius:0,width:\"100%\",display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",boxShadow:layoutType!==\"Sidebar\"?theme.shadow:undefined,maxHeight:layoutType===\"QuickMenu\"?`min(${MODAL_MAX_HEIGHT}px, calc(100vh - 30px))`:undefined};// Opt-in Height Animations for the Search Quick Actions menu.\n// These are disabled by default, but can be enabled via props.\nconst[scope,animate]=useAnimate();useLayoutEffect(()=>{if(layoutType!==\"QuickMenu\"||heightIsStatic)return;const prevHeight=scope.current.offsetHeight;scope.current.style.height=\"auto\";const height=scope.current.offsetHeight;scope.current.style.height=prevHeight+\"px\";animate(scope.current,{height:[prevHeight,height]},heightTransition);},heightDeps);return /*#__PURE__*/_jsx(\"div\",{ref:scope,role:\"dialog\",className:layoutType===\"FixedTop\"?\"__framer-max-height-80dvh\":undefined,style:style,children:children});}const ScrollView=/*#__PURE__*/React.forwardRef(function ScrollView({theme,children},ref){const isTouch=Browser.isTouch();const[canScroll,setCanScroll]=React.useState(true);React.useEffect(()=>{if(!isTouch)return;const element=ref.current;if(!element)return;setCanScroll(element.scrollHeight>element.clientHeight);});return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{width:`calc(100% + ${theme.scrollBarWidth}px)`,overflowY:\"scroll\",overflowX:\"hidden\",overscrollBehavior:\"contain\",touchAction:canScroll?undefined:\"none\",// Make the list appear slightly under the divider\n// so that the divider is still visible when the first\n// item is selected.\nmarginTop:-1},children:children});});const statusStyle={backgroundColor:\"#B5B5B5\",color:\"#FFF\",boxShadow:\"0px 20px 40px 0px rgba(0, 0, 0, 0.25)\",fontFamily:\"inherit\",textAlign:\"center\",fontSize:13,padding:\"8px 0\"};function StatusMessage({status,layoutType,theme}){const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const style={...statusStyle,userSelect:\"none\",fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,fontWeight:500,lineHeight:`calc(${theme.inputFontSize} * 2)`,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,...theme.titleFont,zIndex:theme.zIndex+1,maxWidth:layoutType===\"FixedTop\"?\"none\":theme.width,width:layoutType===\"FixedTop\"?`calc(100% - ${verticalSpacing*2}px`:\"100%\",boxShadow:layoutType!==\"Sidebar\"&&statusStyle.boxShadow,borderRadius:layoutType!==\"Sidebar\"&&theme.borderRadius};// Show less text on fixed text to look nicer on mobile\nconst previewInfoText=layoutType===\"FixedTop\"?\"Preview Mode\":\"Preview Mode. Publish your Site to Search.\";if(status===\"no-meta-tag-found\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:previewInfoText});}if(status===\"pending-index-generation\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:\"Site is being indexed\"});}return null;}const resultTitle={textOverflow:\"ellipsis\",maxWidth:\"100%\",overflow:\"hidden\",fontWeight:500,whiteSpace:\"nowrap\",flex:1,margin:0};const resultContainer={padding:\"16px 20px\",listStyle:\"none\",fontWeight:500};const sidebarStyles={left:0,width:500};const fixedTopStyles={top:0,width:\"100%\"};const quickMenuStyles={width:500};function getLayoutBaseStyles(layoutOption,theme){switch(layoutOption){case\"Sidebar\":return{...sidebarStyles,width:theme.width};case\"FixedTop\":return fixedTopStyles;case\"QuickMenu\":return{...quickMenuStyles,width:theme.width};}}export var SearchInputClearButtonType;(function(SearchInputClearButtonType){SearchInputClearButtonType[\"Icon\"]=\"icon\";SearchInputClearButtonType[\"Text\"]=\"text\";SearchInputClearButtonType[\"None\"]=\"none\";})(SearchInputClearButtonType||(SearchInputClearButtonType={}));export var SearchInputDividerType;(function(SearchInputDividerType){SearchInputDividerType[\"None\"]=\"none\";SearchInputDividerType[\"FullWidth\"]=\"fullWidth\";SearchInputDividerType[\"Contained\"]=\"contained\";})(SearchInputDividerType||(SearchInputDividerType={}));export var SearchResultTitleType;(function(SearchResultTitleType){SearchResultTitleType[\"H1\"]=\"h1\";SearchResultTitleType[\"Title\"]=\"title\";})(SearchResultTitleType||(SearchResultTitleType={}));export var SearchResultSubtitleType;(function(SearchResultSubtitleType){SearchResultSubtitleType[\"Description\"]=\"description\";SearchResultSubtitleType[\"Path\"]=\"path\";})(SearchResultSubtitleType||(SearchResultSubtitleType={}));export var SearchResultItemType;(function(SearchResultItemType){SearchResultItemType[\"FullWidth\"]=\"fullWidth\";SearchResultItemType[\"Contained\"]=\"contained\";})(SearchResultItemType||(SearchResultItemType={}));export var SearchLayoutType;(function(SearchLayoutType){SearchLayoutType[\"Sidebar\"]=\"Sidebar\";SearchLayoutType[\"FixedTop\"]=\"FixedTop\";SearchLayoutType[\"QuickMenu\"]=\"QuickMenu\";})(SearchLayoutType||(SearchLayoutType={}));export var SearchEntryType;(function(SearchEntryType){SearchEntryType[\"Icon\"]=\"icon\";SearchEntryType[\"Text\"]=\"text\";})(SearchEntryType||(SearchEntryType={}));export var SearchIconType;(function(SearchIconType){SearchIconType[\"Default\"]=\"default\";SearchIconType[\"Custom\"]=\"custom\";})(SearchIconType||(SearchIconType={}));/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export function SearchModal(props){const{layoutType,theme,urlScope,inputOptions,backdropOptions,modalOptions,resultOptions,onDismiss}=props;const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;const localeSlug=activeLocale?.slug;const input=useRef();const selectedResultRow=useRef();const scrollView=useRef();const[selected,setSelected]=useState({index:0,scroll:true});const prevMousePositionRef=useRef(null);const[isKeyboardNavigationDisabled,setIsKeyboardNavigationDisabled]=useState(Browser.isTouch);const[query,setQuery]=useState(\"\");const deferredQuery=useDeferredValue(query);const{results,status}=useSearch(deferredQuery,{minimumScore:0,urlScope,titleType:resultOptions.titleType});const selectedResult=results[selected.index];const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);useEffect(()=>{// Reset the selection to the top if the query changes.\nsetSelected({index:0,scroll:true});},[deferredQuery]);const handleResultRowPointerDown=useCallback((event,index)=>{if(event.pointerType!==\"touch\")return;setIsKeyboardNavigationDisabled(true);setSelected({index,scroll:false});},[]);const handleResultRowMouseMove=useCallback((event,index)=>{setSelected(previousSelected=>{if(previousSelected.index===index){return previousSelected;}return{index,scroll:false};});},[]);const router=useRouter();const navigateTo=useCallback(async url=>{if(status===\"no-meta-tag-found\"){return;}try{// Ideally, we would directly expose `routeId` in the search index so that\n// we don't need to infer it from the URL.\nconst{routeId,pathVariables}=inferInitialRouteFromPath(router.routes,url);const route=router.getRoute?.(routeId);onDismiss();await route?.page?.preload?.();router.navigate?.(routeId,null,pathVariables,false);}catch(error){window.location.href=url;}},[status]);const handleKeyDown=event=>{const maxIndex=results.length-1;switch(event.code){case\"ArrowUp\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index-1),scroll:true}));break;case\"ArrowDown\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index+1),scroll:true}));break;case\"Escape\":break;case\"Enter\":if(selectedResult){navigateTo(selectedResult.url);}break;default:event.stopPropagation();}};const showNoResults=results.length===0&&deferredQuery.length>1&&status!==\"loading\";const showDivider=Boolean((deferredQuery.length>0&&results.length>0||showNoResults)&&status!==\"loading\"&&props.inputOptions&&props.inputOptions.dividerType!==\"none\");const isItemContained=Boolean(props.resultOptions&&props.resultOptions.itemType===\"contained\");const spacing=isItemContained?theme.spacing:10;const listPaddingTop=showDivider&&isItemContained?spacing+theme.gapBetweenResults*2:0;useEffect(()=>{if(!selected.scroll)return;const element=selectedResultRow.current;if(!element)return;scrollIntoView(element,scrollView.current,{offsetTop:showDivider&&isItemContained?listPaddingTop:0,offsetBottom:isItemContained?spacing:0});// `showDivider` and `isItemContained` are not dependencies because\n// they will be the latest values when `selected` changes. And including\n// them will cause unnecessary scrolling into view.\n},[selected]);return /*#__PURE__*/_jsxs(LayoutContainer,{layoutType:layoutType,modalOptions:modalOptions,theme:theme,onKeyDown:handleKeyDown,onDismiss:onDismiss,children:[/*#__PURE__*/_jsxs(ModalContainer,{layoutType:layoutType,theme:theme,heightIsStatic:modalOptions.heightIsStatic,heightTransition:modalOptions.heightTransition,heightDeps:[results.length,showNoResults],children:[/*#__PURE__*/_jsx(Input,{autofocus:true,ref:input,onChange:setQuery,value:query,theme:theme,status:status,iconType:inputOptions.iconOptions.iconType,placeholder:inputOptions.placeholderOptions.placeholderText,clearButtonType:inputOptions?inputOptions.clearButtonType:undefined,clearButtonText:inputOptions.clearButtonText}),showDivider&&/*#__PURE__*/_jsx(Divider,{theme:theme,type:inputOptions.dividerType}),/*#__PURE__*/_jsx(ScrollView,{ref:scrollView,theme:theme,children:/*#__PURE__*/_jsxs(\"ul\",{\"aria-live\":\"polite\",style:{display:\"flex\",flexDirection:\"column\",width:`calc(100% - ${theme.scrollBarWidth}px)`,padding:0,paddingTop:listPaddingTop,paddingBottom:results.length&&isItemContained?spacing:0,gap:theme.gapBetweenResults,margin:0},children:[results.map((result,index)=>{const isSelected=index===selected.index;return /*#__PURE__*/_jsx(ResultRow,{ref:isSelected?selectedResultRow:null,index:index,result:result,prevMousePositionRef:prevMousePositionRef,selected:!isKeyboardNavigationDisabled&&isSelected,type:props.resultOptions.itemType,subtitleType:props.resultOptions.subtitleOptions.subtitleType,theme:theme,localeSlug:localeSlug,onMouseMove:handleResultRowMouseMove,onPointerDown:handleResultRowPointerDown,onNavigateTo:navigateTo},result.url);}),showNoResults&&/*#__PURE__*/_jsx(\"li\",{style:{paddingTop:verticalSpacing-listPaddingTop,paddingBottom:verticalSpacing,lineHeight:\"2em\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,height:\"Sidebar\"?\"100%\":\"auto\"},children:/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,textAlign:\"center\",lineHeight:`calc(${theme.inputFontSize} * 2)`,color:theme.subtitleColor,...theme.titleFont},children:\"No results\"})})]})})]}),/*#__PURE__*/_jsx(StatusMessage,{status:status,layoutType:layoutType,theme:theme})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"ResultRow\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultTitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultItemType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchLayoutType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputDividerType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchTheme\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultSubtitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchModal\":{\"type\":\"reactComponent\",\"name\":\"SearchModal\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"SearchIconType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Input\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchEntryType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputClearButtonType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-ignore\nimport{useLocaleInfo}from\"framer\";import{clamp}from\"framer-motion\";import{useEffect,useState,useTransition}from\"react\";import{SearchResultTitleType}from\"https://framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/wgITiHCOZBBo33pin0wW/SearchModal.js\";import{getCachedIndex,isDefaultLocaleId,setCachedIndex}from\"https://framerusercontent.com/modules/uU1mtMKXsrVAg8N5hW7w/v7gDLwKJgQ5vAsFHxY4H/cachedIndex.js\";import{fakeResults}from\"https://framerusercontent.com/modules/K9JZRwJcE6slDAf8rUmh/mJ54py1Ecnn1RoC4N1m4/fakeResults.js\";import{distance}from\"https://framerusercontent.com/modules/TwRgbWuhHeB95MPifel4/YW8Hlm59FG3PajbrVsaR/fuzzySearch.js\";import{createLogger,localStorageDebugFlag,safeDocument,safeWindow,stripLocaleSlugFromPath,yieldToMain}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";const{log,time,timeEnd}=createLogger(localStorageDebugFlag);const splitWordsRegex=(()=>{try{// Regex lookbehind is used to ignore ampersands when splitting\n// words. For example \"H&M\" will not be split and is considered as\n// one word, but \"H & M\" will be split.\n// However, some browsers (like Safari iOS 15) don't support\n// lookbehind and will crash. When it's not supported, fallback to\n// a safer regex that always splits ampersands.\nconst regex=RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+(?<!\\\\p{L}&)(?!&\\\\p{L})\",\"u\");\"\".split(regex);return regex;}catch{log(\"Falling back to regex without lookbehind\");return RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+\",\"u\");}})();function splitWords(text){return text.split(splitWordsRegex);}function getUniqueWords(str){const words=splitWords(str).filter(word=>word.trim()&&word.length>0);return new Set(words);}const normalizeRegex=/[\\u0300-\\u036f]/g;/**\n * Replace accented characters with equivilant non-accented versions and\n * make everything lowercase.\n */function getNormalizedString(text){if(Array.isArray(text)){return text.map(getNormalizedString);}return text.normalize(\"NFD\")// From: https://stackoverflow.com/a/37511463\n.replace(normalizeRegex,\"\").toLowerCase();}const normalizedItemCache=new WeakMap;function getNormalizedItemFromCache(item){const cached=normalizedItemCache.get(item);if(cached)return cached;const normalizedItem=getNormalizedItem(item);normalizedItemCache.set(item,normalizedItem);return normalizedItem;}function getNormalizedItem(item){const normalizedItem={};for(const key in item){if(item.hasOwnProperty(key)){const value=item[key];if(typeof value===\"string\"){normalizedItem[key]=getNormalizedString(value);continue;}if(Array.isArray(value)){normalizedItem[key]=getNormalizedString(value);continue;}normalizedItem[key]=value;}}return normalizedItem;}function getMatchRange(currentRange,start,end){const result={...currentRange};if(start<result.start){result.start=start;}if(end>result.end){result.end=end;}return result;}/**\n * Score index item based on the contents of it's fields such as title, description, headings etc.\n *\n * Note that this does not normalize the item or query. Normalization is expected to happen\n * before passing the data into this.\n */function getScoreForSearchIndexItem(item,query,words,fullQuery){let score=0;const match={title:{start:Infinity,end:0},description:{start:Infinity,end:0}};const urlWords=getUniqueWords(item.url);// Match query based on words in the URL so that random strings inside\n// other strings are not matched.\nif(urlWords.has(query)){score+=10;}// Really boost single word queries that match single word URLs.\nif(words.size===1&&urlWords.size===1&&urlWords.values().next().value===query){score+=score*5;}// Score shorter URLs higher so `/pricing` is before `/lala/pricing`.\nif(score>0){const splitLength=item.url.split(\"/\").length;score+=clamp(10-splitLength,0,splitLength);}const titleWords=getUniqueWords(item.title);// Prefer full word matches in the title.\nif(titleWords.has(query)){score+=10;}const titleIndex=item.title.indexOf(query);if(titleIndex!==-1){score+=10;// TODO: Matches are currently not used, but they can be used in the\n// future to add text highlighting.\nmatch.title=getMatchRange(match.title,titleIndex,titleIndex+query.length);}// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(item.title,fullQuery)<=2){score+=score*10;}// Fuzzy match full words in the title.\nfor(const titleWord of titleWords){const distanceScore=distance(query,titleWord);// Small distance score helps with small typos.\nif(distanceScore<=2){score+=10;}}const headings=[...item.h1,...item.h2,...item.h3,...item.h4,...item.h5,...item.h6];for(const heading of headings){const headingWords=getUniqueWords(heading);// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(heading,fullQuery)<=2){score+=score*10;}// Bias headings that start with the query as this helps when\n// you know the title you are searching for.\nif(heading.startsWith(query)){score+=10;}if(headingWords.has(query)){score+=10;}if(heading.includes(query)){score+=1;}// Fuzzy match full words in headings.\nfor(const headingWord of headingWords){const distanceScore=distance(query,headingWord);if(distanceScore<=2){score+=1;}}}const descriptionIndex=item.description.indexOf(query);if(descriptionIndex!==-1){score+=10;match.description=getMatchRange(match.description,descriptionIndex,descriptionIndex+query.length);}for(const p of item.p){if(p.includes(query)){score+=.5;}}for(const codeblock of item.codeblock){// If the full query is close to being the codeblock, score this highly as\n// the user is most likely looking for that exact code.\nif(distance(codeblock,fullQuery)<=2){score*=10;}if(codeblock.includes(fullQuery)){score+=10;}if(codeblock.includes(query)){score+=.5;}}return{score,match};}function getSearchIndexItemScore(item,normalizedQuery){const normalizedItem=getNormalizedItemFromCache(item);const queryWords=getUniqueWords(normalizedQuery);let total=0;for(const queryWord of queryWords){const{score}=getScoreForSearchIndexItem(normalizedItem,queryWord,queryWords,normalizedQuery);total+=score;}return total;}function useRawSearch(index,query,settings){const[results,setResults]=useState(null);const[,startTransition]=useTransition();useEffect(()=>{const abortController=new AbortController;executeRawSearch(index,query,settings,abortController.signal).then(res=>{if(!abortController.signal.aborted){startTransition(()=>{setResults(res);});}}).catch(err=>{if(err.name!==\"AbortError\"){console.error(\"Search failed:\",err);}});return()=>{abortController.abort();};},[index,query]);return{results:results??[]};}const QUANTUM=32// ms, 2*16ms (2 frames on 60 hz)\n;async function executeRawSearch(index,query,settings,signal){const path=safeWindow?.location.pathname;time(\"query\");const normalizedQuery=getNormalizedString(query);const results=[];const items=Object.values(index);let deadline=performance.now()+QUANTUM;async function yieldToMainIfNecessary(){if(performance.now()>=deadline){await yieldToMain();deadline=performance.now()+QUANTUM;}}for(let i=0;i<items.length;++i){if(performance.now()>=deadline){await yieldToMainIfNecessary();deadline=performance.now()+QUANTUM;}if(signal?.aborted)return[];const item=items[i];const score=getSearchIndexItemScore(item,normalizedQuery);if(score>(settings.minimumScore||0)&&(!path||item.url!==path)){const heading=item.h1.length&&item.h1[0];const title=settings?.titleType===SearchResultTitleType.Title?item.title:heading?heading:item.title;// Convert index item to result item.\nresults.push({url:item.url,title,description:item.description,body:[...item.p,item.codeblock].join(\" \"),score});}}await yieldToMainIfNecessary();if(signal?.aborted)return[];const sorted=results.sort((itemA,itemB)=>itemB.score-itemA.score);timeEnd(\"query\");await yieldToMainIfNecessary();if(signal?.aborted)return[];return results.slice(0,20);}function getIndexedScopedToUrl(index,rawUrlScope,localeSlug){const scopedIndex={};const baseScopeUrlHasVariable=rawUrlScope.includes(\":\");const urlUpToPathVariable=rawUrlScope.split(\":\")[0];const urlScope=urlUpToPathVariable.length>1?urlUpToPathVariable:\"\";for(const url in index){const strippedURL=stripLocaleSlugFromPath(url,localeSlug);if(!strippedURL.startsWith(urlScope)){continue;}if(baseScopeUrlHasVariable&&url.length<=urlScope.length){continue;}scopedIndex[url]=index[url];}return scopedIndex;}export function useSearch(query,settings){const[searchIndex,_setSearchIndex]=useState({});const[status,setStatus]=useState(\"loading\");const{results}=useRawSearch(searchIndex,query,settings);const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;// Seperate setter function so that the URL scope is always applied\n// to indexes loaded from either the cache or network.\nfunction setSearchIndex(index,options={ignoreScope:false}){let scopedIndex=index;if(settings.urlScope&&!options.ignoreScope){scopedIndex=getIndexedScopedToUrl(index,settings.urlScope,activeLocale?.slug);log(\"Using URL scope\",settings.urlScope);}_setSearchIndex(scopedIndex);}useEffect(()=>{async function loadSearchIndex(){setStatus(\"loading\");const baseUrl=getBaseUrl(\"framer-search-index\");if(!baseUrl){setStatus(\"no-meta-tag-found\");setSearchIndex(fakeResults,{ignoreScope:true});log(\"No meta tag found\");return;}const cacheResult=await getCachedIndex(localeId,baseUrl);if(cacheResult.status===\"fresh\"){setSearchIndex(cacheResult.searchIndex);setStatus(\"success\");log(\"Using fresh cached index\");return;}if(cacheResult.status===\"stale\"){setSearchIndex(cacheResult.searchIndex);setStatus(\"loading-with-cache\");log(\"Using stale cached index while loading a fresh one\");}const searchIndexUrl=getSearchIndexUrl(baseUrl,localeId);const response=await fetch(searchIndexUrl);if(response.ok){const downloadedIndex=await response.json();setSearchIndex(downloadedIndex);setCachedIndex(localeId,downloadedIndex,baseUrl);setStatus(\"success\");log(\"Using downloaded index\");return;}// Our \"sites\" CDN currently returns 403s for missing files.\nconst isNotFound=response.status===403||response.status===404;if(!isNotFound){throw new Error(response.statusText);}// Index is likely still being generated.\nlog(\"Index not found\");const fallbackBaseUrl=getBaseUrl(\"framer-search-index-fallback\");if(!fallbackBaseUrl){if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"No fallback, no cache\");}else{log(\"No fallback, using cache\");}return;}// If we're here, cache is missing or stale. If it's stale but it's our fallback index, we can use it.\nif(cacheResult.status===\"stale\"&&cacheResult.indexHash===fallbackBaseUrl){setStatus(\"success\");log(\"Using cached fallback index\");return;}const fallbackSearchIndexUrl=getSearchIndexUrl(fallbackBaseUrl,localeId);const fallbackResponse=await fetch(fallbackSearchIndexUrl);if(fallbackResponse.ok){const downloadedIndex=await fallbackResponse.json();setSearchIndex(downloadedIndex);setCachedIndex(localeId,downloadedIndex,fallbackBaseUrl);setStatus(\"success\");log(\"Using downloaded fallback index\");return;}if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"Fallback failed, no cache\");}else{log(\"Fallback failed, using cache\");}}loadSearchIndex().catch(error=>{// TODO: Check for error type here. If it's a network error,\n// we could do a few retries.\nsetStatus(\"error\");log(\"Failed to load search index\",error);});},[localeId]);log({status,results});return{results,status};}function getBaseUrl(name){return safeDocument?.querySelector(`meta[name=\"${name}\"]`)?.getAttribute(\"content\");}function getSearchIndexUrl(baseURL,localeId){if(isDefaultLocaleId(localeId))return baseURL;return baseURL.replace(\".json\",`-${localeId}.json`);}\nexport const __FramerMetadata__ = {\"exports\":{\"SearchIndex\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useSearch\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useSearch.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useSearch}from\"https://framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/G59GwobMNJqwSjtPO6Pv/useSearch.js\";import React,{useEffect,useState,useMemo,forwardRef,useRef,useDeferredValue,useLayoutEffect,useCallback,useImperativeHandle}from\"react\";import{Browser}from\"https://framerusercontent.com/modules/PJVBcBLmDteTEAZh3J9Z/keXJyjyE9VnzUcDMayjg/browser.js\";import{motion,clamp,useAnimate}from\"framer-motion\";import{SearchIcon,ClearIcon,SpinnerIcon}from\"https://framerusercontent.com/modules/LV9trClbmNwd5PVj9l8y/L4rFqMGNzGSwRZpGTGF3/Icons.js\";import{clampText,getFontFamily,localStorageDebugFlag,animationKeyFromLayout,stripLocaleSlugFromPath}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";import{useCallbackOnMouseMove}from\"https://framerusercontent.com/modules/Gzef0nFihI9m9vZG45th/lIUxbZcreiDm2GzUkt3y/useCallbackOnMouseMove.js\";import{scrollIntoView}from\"https://framerusercontent.com/modules/eAnjm75CdfYT1Zz4BIaz/7KDSfnnyD1T3Ap75L4m8/scrollIntoView.js\";import{useLocaleInfo,// @ts-expect-error Internal API\nuseRouter,// @ts-expect-error Internal API\ninferInitialRouteFromPath}from\"framer\";const MAX_DESCRIPTION_LENGTH=120;const MODAL_MAX_HEIGHT=496;const VERTICAL_SPACING_MULTIPLIER=.6;function ClearButton({theme,type,onClick,text}){const shouldDisplayIcon=type===\"icon\";const iconOrText=shouldDisplayIcon?/*#__PURE__*/_jsx(ClearIcon,{style:{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize}}):text;return /*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,fontSize:theme&&theme.titleFont&&theme.titleFont.fontSize?theme.titleFont.fontSize:15},children:/*#__PURE__*/_jsx(\"button\",{className:\"__framer-search-clear-button\",onClick:onClick,style:{fontFamily:\"inherit\",border:\"none\",background:\"none\",cursor:\"pointer\",display:\"flex\",textTransform:\"uppercase\",color:theme.inputIconColor,fontSize:\"0.75em\",padding:0},children:iconOrText})});}function Divider({theme,type}){const styles={background:theme.foregroundColor,height:1,flexShrink:0,opacity:.05};if(type===\"contained\"&&theme){styles.marginLeft=theme.horizontalSpacing;styles.marginRight=theme.horizontalSpacing;}return /*#__PURE__*/_jsx(\"div\",{style:styles});}export const Input=/*#__PURE__*/forwardRef(function Input(props,ref){const{value=\"\",status,autofocus,theme,placeholder,iconType,clearButtonType,onChange}=props;const[inputValue,setInputValue]=useState(value);const[isFocused,setIsFocused]=useState(false);const inputRef=useRef();useImperativeHandle(ref,()=>inputRef.current);React.useLayoutEffect(()=>{// Runs on unmount, fixes a bug in Safari that scrolls to the bottom\n// of the page when the input unmounts.\nreturn()=>{const inputElement=inputRef.current;if(!inputElement||inputElement!==document.activeElement)return;inputElement.blur();};},[]);const handleInputClick=()=>{if(inputRef.current){inputRef.current.focus();}};const handleClearClick=()=>{setInputValue(\"\");};useEffect(()=>{onChange(inputValue);},[inputValue]);const hasInputText=inputValue.length>0;const showClearButton=inputValue.length>0&&clearButtonType&&clearButtonType!==\"none\";const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const searchIcon=iconType===\"custom\"&&theme.inputIconImage?/*#__PURE__*/_jsx(\"img\",{alt:\"icon alongside the Site Search input\",src:theme.inputIconImage.src,width:theme.inputIconSize,height:theme.inputIconSize,decoding:\"async\"}):/*#__PURE__*/_jsx(SearchIcon,{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize});return /*#__PURE__*/_jsxs(\"div\",{role:\"search\",style:{...inputContainerStyle,fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,gap:12,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,touchAction:\"none\"},onClick:handleInputClick,children:[/*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,display:\"flex\"},children:status===\"loading\"&&inputValue?/*#__PURE__*/_jsx(SpinnerIcon,{color:theme.inputIconColor,backgroundColor:theme.backgroundColor,style:{height:theme&&theme.inputIconSize,width:theme&&theme.inputIconSize}}):searchIcon}),/*#__PURE__*/_jsx(\"input\",{ref:inputRef,spellCheck:false,autoFocus:autofocus,style:{...inputStyle,WebkitTapHighlightColor:\"rgba(0,0,0,0)\",color:theme.foregroundColor,lineHeight:\"2em\",verticalAlign:\"baseline\",...theme.titleFont,...theme.inputFont,fontSize:theme.inputFontSize,// @ts-ignore\n\"--framer-search-placeholder-color\":theme.placeholderColor},onFocus:()=>{const scrollOffset=document.documentElement.scrollTop;document.documentElement.scrollTop=scrollOffset;},placeholder:placeholder,value:inputValue,onChange:()=>setInputValue(inputRef.current.value)}),showClearButton&&/*#__PURE__*/_jsx(ClearButton,{theme:theme,type:props.clearButtonType,text:props.clearButtonText,onClick:handleClearClick})]});});const inputContainerStyle={display:\"inline-flex\",alignItems:\"center\",flexShrink:0};const inputStyle={outline:\"none\",border:\"none\",background:\"transparent\",fontWeight:500,height:\"2em\",padding:0,width:\"100%\"};export const ResultRow=/*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function ResultRow(props,ref){const{index,result,prevMousePositionRef,type=\"contained\",subtitleType=\"path\",selected=false,theme,localeSlug,style,onMouseMove,onPointerDown,onNavigateTo}=props;const{url,title,score}=result;const urlPath=useMemo(()=>{return stripLocaleSlugFromPath(url,localeSlug);},[url,localeSlug]);const handleMouseMove=useCallbackOnMouseMove(event=>onMouseMove(event,index),prevMousePositionRef);const isContained=type===\"contained\";const borderRadius=isContained?clamp(0,Infinity,theme.borderRadius-theme.spacing):0;const subtitleText=subtitleType===\"path\"?urlPath:clampText(result.description,MAX_DESCRIPTION_LENGTH);const handleClick=event=>{event.preventDefault();onNavigateTo(result.url);};const focusTrap=event=>{event.preventDefault();};return /*#__PURE__*/_jsx(\"a\",{ref:ref,style:{textDecoration:\"none\"},href:result.url,onClick:handleClick,onMouseMove:handleMouseMove,onMouseDown:focusTrap,onPointerDown:event=>onPointerDown(event,index),children:/*#__PURE__*/_jsxs(\"li\",{style:{...resultContainer,...style,paddingTop:isContained?12:16,paddingBottom:isContained?12:16,color:theme.foregroundColor,position:\"relative\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing},children:[/*#__PURE__*/_jsx(\"div\",{style:{backgroundColor:theme.foregroundColor,position:\"absolute\",opacity:selected?.06:0,borderRadius,left:theme&&isContained?theme.spacing:0,right:theme&&isContained?theme.spacing:0,top:0,bottom:0}}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",gap:4},children:[/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,...theme.titleFont,lineHeight:\"1.4em\"},children:title}),/*#__PURE__*/_jsxs(\"p\",{style:{margin:0,color:theme.subtitleColor,...theme.subtitleFont,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",lineHeight:\"1.4em\"},children:[localStorageDebugFlag?score:\"\",\" \",subtitleText]})]})]},result.url)});}));/**\n * Flexible gap used inside a flexbox layout to push down the quick menu\n * by 20% of the screen height, but also allow it to collapse to zero if\n * there is not enough vertical room.\n */function QuickMenuSpacer({onClick}){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",flexBasis:\"20vh\"},onClick:onClick});}const layoutContainerStyle={display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"flex-start\",gap:15,overflow:\"visible\"};function LayoutContainer({layoutType,theme,onKeyDown,onDismiss,children,modalOptions}){const layoutStyles=getLayoutBaseStyles(layoutType,theme);const style={...layoutContainerStyle,...layoutStyles,willChange:\"transform\",marginTop:layoutType===\"FixedTop\"?theme.offsetTop:0,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\"};const innerStyle={...layoutContainerStyle,...layoutStyles,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",gap:layoutType===\"Sidebar\"?0:theme.gapBetweenStatusAndSearch,backgroundColor:layoutType===\"Sidebar\"?theme.backgroundColor:\"transparent\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\",originX:.5,originY:.5};function getContainerAnimation(){switch(layoutType){case\"FixedTop\":{const key=animationKeyFromLayout(\"FixedTop\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{y:-10,opacity:.2,transition:{duration:Browser.isTouch()?0:.15}};}break;}case\"QuickMenu\":{const key=animationKeyFromLayout(\"QuickMenu\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{scale:.95,opacity:0,y:0,x:0,rotate:0,transition:{type:\"spring\",stiffness:600,damping:40}};}break;}case\"Sidebar\":{const key=animationKeyFromLayout(\"Sidebar\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{x:-10,opacity:0,transition:{duration:.15}};}break;}}}const containerAnimation=getContainerAnimation();return /*#__PURE__*/_jsxs(\"div\",{style:style,onKeyDown:onKeyDown,onClick:event=>event.stopPropagation(),children:[layoutType===\"QuickMenu\"&&/*#__PURE__*/_jsx(QuickMenuSpacer,{onClick:onDismiss}),/*#__PURE__*/_jsx(motion.div,{initial:containerAnimation,animate:{opacity:1,scale:1,x:0,y:0,rotate:0},transition:containerAnimation?containerAnimation.transition:undefined,exit:{opacity:0,transition:{duration:0}},style:innerStyle,children:children})]});}function ModalContainer({layoutType,theme,children,heightIsStatic,heightTransition,heightDeps}){const style={// This `willChange` is required to avoid weird rendering issues where\n// parts of the search window won't redraw, which we observed in Safari 16.4.\nwillChange:\"transform\",backgroundColor:theme.backgroundColor,color:theme.foregroundColor,borderRadius:layoutType===\"QuickMenu\"?theme.borderRadius:0,width:\"100%\",display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",boxShadow:layoutType!==\"Sidebar\"?theme.shadow:undefined,maxHeight:layoutType===\"QuickMenu\"?`min(${MODAL_MAX_HEIGHT}px, calc(100vh - 30px))`:undefined};// Opt-in Height Animations for the Search Quick Actions menu.\n// These are disabled by default, but can be enabled via props.\nconst[scope,animate]=useAnimate();useLayoutEffect(()=>{if(layoutType!==\"QuickMenu\"||heightIsStatic)return;const prevHeight=scope.current.offsetHeight;scope.current.style.height=\"auto\";const height=scope.current.offsetHeight;scope.current.style.height=prevHeight+\"px\";animate(scope.current,{height:[prevHeight,height]},heightTransition);},heightDeps);return /*#__PURE__*/_jsx(\"div\",{ref:scope,role:\"dialog\",className:layoutType===\"FixedTop\"?\"__framer-max-height-80dvh\":undefined,style:style,children:children});}const ScrollView=/*#__PURE__*/React.forwardRef(function ScrollView({theme,children},ref){const isTouch=Browser.isTouch();const[canScroll,setCanScroll]=React.useState(true);React.useEffect(()=>{if(!isTouch)return;const element=ref.current;if(!element)return;setCanScroll(element.scrollHeight>element.clientHeight);});return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{width:`calc(100% + ${theme.scrollBarWidth}px)`,overflowY:\"scroll\",overflowX:\"hidden\",overscrollBehavior:\"contain\",touchAction:canScroll?undefined:\"none\",// Make the list appear slightly under the divider\n// so that the divider is still visible when the first\n// item is selected.\nmarginTop:-1},children:children});});const statusStyle={backgroundColor:\"#B5B5B5\",color:\"#FFF\",boxShadow:\"0px 20px 40px 0px rgba(0, 0, 0, 0.25)\",fontFamily:\"inherit\",textAlign:\"center\",fontSize:13,padding:\"8px 0\"};function StatusMessage({status,layoutType,theme}){const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const style={...statusStyle,userSelect:\"none\",fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,fontWeight:500,lineHeight:`calc(${theme.inputFontSize} * 2)`,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,...theme.titleFont,zIndex:theme.zIndex+1,maxWidth:layoutType===\"FixedTop\"?\"none\":theme.width,width:layoutType===\"FixedTop\"?`calc(100% - ${verticalSpacing*2}px`:\"100%\",boxShadow:layoutType!==\"Sidebar\"&&statusStyle.boxShadow,borderRadius:layoutType!==\"Sidebar\"&&theme.borderRadius};// Show less text on fixed text to look nicer on mobile\nconst previewInfoText=layoutType===\"FixedTop\"?\"Preview Mode\":\"Preview Mode. Publish your Site to Search.\";if(status===\"no-meta-tag-found\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:previewInfoText});}if(status===\"pending-index-generation\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:\"Site is being indexed\"});}return null;}const resultTitle={textOverflow:\"ellipsis\",maxWidth:\"100%\",overflow:\"hidden\",fontWeight:500,whiteSpace:\"nowrap\",flex:1,margin:0};const resultContainer={padding:\"16px 20px\",listStyle:\"none\",fontWeight:500};const sidebarStyles={left:0,width:500};const fixedTopStyles={top:0,width:\"100%\"};const quickMenuStyles={width:500};function getLayoutBaseStyles(layoutOption,theme){switch(layoutOption){case\"Sidebar\":return{...sidebarStyles,width:theme.width};case\"FixedTop\":return fixedTopStyles;case\"QuickMenu\":return{...quickMenuStyles,width:theme.width};}}export var SearchInputClearButtonType;(function(SearchInputClearButtonType){SearchInputClearButtonType[\"Icon\"]=\"icon\";SearchInputClearButtonType[\"Text\"]=\"text\";SearchInputClearButtonType[\"None\"]=\"none\";})(SearchInputClearButtonType||(SearchInputClearButtonType={}));export var SearchInputDividerType;(function(SearchInputDividerType){SearchInputDividerType[\"None\"]=\"none\";SearchInputDividerType[\"FullWidth\"]=\"fullWidth\";SearchInputDividerType[\"Contained\"]=\"contained\";})(SearchInputDividerType||(SearchInputDividerType={}));export var SearchResultTitleType;(function(SearchResultTitleType){SearchResultTitleType[\"H1\"]=\"h1\";SearchResultTitleType[\"Title\"]=\"title\";})(SearchResultTitleType||(SearchResultTitleType={}));export var SearchResultSubtitleType;(function(SearchResultSubtitleType){SearchResultSubtitleType[\"Description\"]=\"description\";SearchResultSubtitleType[\"Path\"]=\"path\";})(SearchResultSubtitleType||(SearchResultSubtitleType={}));export var SearchResultItemType;(function(SearchResultItemType){SearchResultItemType[\"FullWidth\"]=\"fullWidth\";SearchResultItemType[\"Contained\"]=\"contained\";})(SearchResultItemType||(SearchResultItemType={}));export var SearchLayoutType;(function(SearchLayoutType){SearchLayoutType[\"Sidebar\"]=\"Sidebar\";SearchLayoutType[\"FixedTop\"]=\"FixedTop\";SearchLayoutType[\"QuickMenu\"]=\"QuickMenu\";})(SearchLayoutType||(SearchLayoutType={}));export var SearchEntryType;(function(SearchEntryType){SearchEntryType[\"Icon\"]=\"icon\";SearchEntryType[\"Text\"]=\"text\";})(SearchEntryType||(SearchEntryType={}));export var SearchIconType;(function(SearchIconType){SearchIconType[\"Default\"]=\"default\";SearchIconType[\"Custom\"]=\"custom\";})(SearchIconType||(SearchIconType={}));/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export function SearchModal(props){const{layoutType,theme,urlScope,inputOptions,backdropOptions,modalOptions,resultOptions,onDismiss}=props;const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;const localeSlug=activeLocale?.slug;const input=useRef();const selectedResultRow=useRef();const scrollView=useRef();const[selected,setSelected]=useState({index:0,scroll:true});const prevMousePositionRef=useRef(null);const[isKeyboardNavigationDisabled,setIsKeyboardNavigationDisabled]=useState(Browser.isTouch);const[query,setQuery]=useState(\"\");const deferredQuery=useDeferredValue(query);const{results,status}=useSearch(deferredQuery,{minimumScore:0,urlScope,titleType:resultOptions.titleType});const selectedResult=results[selected.index];const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);useEffect(()=>{// Reset the selection to the top if the query changes.\nsetSelected({index:0,scroll:true});},[deferredQuery]);const handleResultRowPointerDown=useCallback((event,index)=>{if(event.pointerType!==\"touch\")return;setIsKeyboardNavigationDisabled(true);setSelected({index,scroll:false});},[]);const handleResultRowMouseMove=useCallback((event,index)=>{setSelected(previousSelected=>{if(previousSelected.index===index){return previousSelected;}return{index,scroll:false};});},[]);const router=useRouter();const navigateTo=useCallback(async url=>{if(status===\"no-meta-tag-found\"){return;}try{// Ideally, we would directly expose `routeId` in the search index so that\n// we don't need to infer it from the URL.\nconst{routeId,pathVariables}=inferInitialRouteFromPath(router.routes,url);const route=router.getRoute?.(routeId);onDismiss();await route?.page?.preload?.();router.navigate?.(routeId,null,pathVariables,false);}catch(error){window.location.href=url;}},[status]);const handleKeyDown=event=>{const maxIndex=results.length-1;switch(event.code){case\"ArrowUp\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index-1),scroll:true}));break;case\"ArrowDown\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index+1),scroll:true}));break;case\"Escape\":break;case\"Enter\":if(selectedResult){navigateTo(selectedResult.url);}break;default:event.stopPropagation();}};const showNoResults=results.length===0&&deferredQuery.length>1&&status!==\"loading\";const showDivider=Boolean((deferredQuery.length>0&&results.length>0||showNoResults)&&status!==\"loading\"&&props.inputOptions&&props.inputOptions.dividerType!==\"none\");const isItemContained=Boolean(props.resultOptions&&props.resultOptions.itemType===\"contained\");const spacing=isItemContained?theme.spacing:10;const listPaddingTop=showDivider&&isItemContained?spacing+theme.gapBetweenResults*2:0;useEffect(()=>{if(!selected.scroll)return;const element=selectedResultRow.current;if(!element)return;scrollIntoView(element,scrollView.current,{offsetTop:showDivider&&isItemContained?listPaddingTop:0,offsetBottom:isItemContained?spacing:0});// `showDivider` and `isItemContained` are not dependencies because\n// they will be the latest values when `selected` changes. And including\n// them will cause unnecessary scrolling into view.\n},[selected]);return /*#__PURE__*/_jsxs(LayoutContainer,{layoutType:layoutType,modalOptions:modalOptions,theme:theme,onKeyDown:handleKeyDown,onDismiss:onDismiss,children:[/*#__PURE__*/_jsxs(ModalContainer,{layoutType:layoutType,theme:theme,heightIsStatic:modalOptions.heightIsStatic,heightTransition:modalOptions.heightTransition,heightDeps:[results.length,showNoResults],children:[/*#__PURE__*/_jsx(Input,{autofocus:true,ref:input,onChange:setQuery,value:query,theme:theme,status:status,iconType:inputOptions.iconOptions.iconType,placeholder:inputOptions.placeholderOptions.placeholderText,clearButtonType:inputOptions?inputOptions.clearButtonType:undefined,clearButtonText:inputOptions.clearButtonText}),showDivider&&/*#__PURE__*/_jsx(Divider,{theme:theme,type:inputOptions.dividerType}),/*#__PURE__*/_jsx(ScrollView,{ref:scrollView,theme:theme,children:/*#__PURE__*/_jsxs(\"ul\",{\"aria-live\":\"polite\",style:{display:\"flex\",flexDirection:\"column\",width:`calc(100% - ${theme.scrollBarWidth}px)`,padding:0,paddingTop:listPaddingTop,paddingBottom:results.length&&isItemContained?spacing:0,gap:theme.gapBetweenResults,margin:0},children:[results.map((result,index)=>{const isSelected=index===selected.index;return /*#__PURE__*/_jsx(ResultRow,{ref:isSelected?selectedResultRow:null,index:index,result:result,prevMousePositionRef:prevMousePositionRef,selected:!isKeyboardNavigationDisabled&&isSelected,type:props.resultOptions.itemType,subtitleType:props.resultOptions.subtitleOptions.subtitleType,theme:theme,localeSlug:localeSlug,onMouseMove:handleResultRowMouseMove,onPointerDown:handleResultRowPointerDown,onNavigateTo:navigateTo},result.url);}),showNoResults&&/*#__PURE__*/_jsx(\"li\",{style:{paddingTop:verticalSpacing-listPaddingTop,paddingBottom:verticalSpacing,lineHeight:\"2em\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,height:\"Sidebar\"?\"100%\":\"auto\"},children:/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,textAlign:\"center\",lineHeight:`calc(${theme.inputFontSize} * 2)`,color:theme.subtitleColor,...theme.titleFont},children:\"No results\"})})]})})]}),/*#__PURE__*/_jsx(StatusMessage,{status:status,layoutType:layoutType,theme:theme})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"ResultRow\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultTitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultItemType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchLayoutType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputDividerType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchTheme\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultSubtitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchModal\":{\"type\":\"reactComponent\",\"name\":\"SearchModal\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"SearchIconType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Input\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchEntryType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputClearButtonType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-ignore\nimport{useLocaleInfo}from\"framer\";import{clamp}from\"framer-motion\";import{useEffect,useState,useTransition}from\"react\";import{SearchResultTitleType}from\"https://framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/bsLTiXYjkHoD2XaMjabu/SearchModal.js\";import{getCachedIndex,isDefaultLocaleId,setCachedIndex}from\"https://framerusercontent.com/modules/uU1mtMKXsrVAg8N5hW7w/v7gDLwKJgQ5vAsFHxY4H/cachedIndex.js\";import{fakeResults}from\"https://framerusercontent.com/modules/K9JZRwJcE6slDAf8rUmh/mJ54py1Ecnn1RoC4N1m4/fakeResults.js\";import{distance}from\"https://framerusercontent.com/modules/TwRgbWuhHeB95MPifel4/YW8Hlm59FG3PajbrVsaR/fuzzySearch.js\";import{createLogger,localStorageDebugFlag,safeDocument,safeWindow,stripLocaleSlugFromPath,yieldToMain}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";const{log,time,timeEnd}=createLogger(localStorageDebugFlag);const splitWordsRegex=(()=>{try{// Regex lookbehind is used to ignore ampersands when splitting\n// words. For example \"H&M\" will not be split and is considered as\n// one word, but \"H & M\" will be split.\n// However, some browsers (like Safari iOS 15) don't support\n// lookbehind and will crash. When it's not supported, fallback to\n// a safer regex that always splits ampersands.\nconst regex=RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+(?<!\\\\p{L}&)(?!&\\\\p{L})\",\"u\");\"\".split(regex);return regex;}catch{log(\"Falling back to regex without lookbehind\");return RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+\",\"u\");}})();function splitWords(text){return text.split(splitWordsRegex);}function getUniqueWords(str){const words=splitWords(str).filter(word=>word.trim()&&word.length>0);return new Set(words);}const normalizeRegex=/[\\u0300-\\u036f]/g;/**\n * Replace accented characters with equivilant non-accented versions and\n * make everything lowercase.\n */function getNormalizedString(text){if(Array.isArray(text)){return text.map(getNormalizedString);}return text.normalize(\"NFD\")// From: https://stackoverflow.com/a/37511463\n.replace(normalizeRegex,\"\").toLowerCase();}const normalizedItemCache=new WeakMap;function getNormalizedItemFromCache(item){const cached=normalizedItemCache.get(item);if(cached)return cached;const normalizedItem=getNormalizedItem(item);normalizedItemCache.set(item,normalizedItem);return normalizedItem;}function getNormalizedItem(item){const normalizedItem={};for(const key in item){if(item.hasOwnProperty(key)){const value=item[key];if(typeof value===\"string\"){normalizedItem[key]=getNormalizedString(value);continue;}if(Array.isArray(value)){normalizedItem[key]=getNormalizedString(value);continue;}normalizedItem[key]=value;}}return normalizedItem;}function getMatchRange(currentRange,start,end){const result={...currentRange};if(start<result.start){result.start=start;}if(end>result.end){result.end=end;}return result;}/**\n * Score index item based on the contents of it's fields such as title, description, headings etc.\n *\n * Note that this does not normalize the item or query. Normalization is expected to happen\n * before passing the data into this.\n */function getScoreForSearchIndexItem(item,query,words,fullQuery){let score=0;const match={title:{start:Infinity,end:0},description:{start:Infinity,end:0}};const urlWords=getUniqueWords(item.url);// Match query based on words in the URL so that random strings inside\n// other strings are not matched.\nif(urlWords.has(query)){score+=10;}// Really boost single word queries that match single word URLs.\nif(words.size===1&&urlWords.size===1&&urlWords.values().next().value===query){score+=score*5;}// Score shorter URLs higher so `/pricing` is before `/lala/pricing`.\nif(score>0){const splitLength=item.url.split(\"/\").length;score+=clamp(10-splitLength,0,splitLength);}const titleWords=getUniqueWords(item.title);// Prefer full word matches in the title.\nif(titleWords.has(query)){score+=10;}const titleIndex=item.title.indexOf(query);if(titleIndex!==-1){score+=10;// TODO: Matches are currently not used, but they can be used in the\n// future to add text highlighting.\nmatch.title=getMatchRange(match.title,titleIndex,titleIndex+query.length);}// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(item.title,fullQuery)<=2){score+=score*10;}// Fuzzy match full words in the title.\nfor(const titleWord of titleWords){const distanceScore=distance(query,titleWord);// Small distance score helps with small typos.\nif(distanceScore<=2){score+=10;}}const headings=[...item.h1,...item.h2,...item.h3,...item.h4,...item.h5,...item.h6];for(const heading of headings){const headingWords=getUniqueWords(heading);// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(heading,fullQuery)<=2){score+=score*10;}// Bias headings that start with the query as this helps when\n// you know the title you are searching for.\nif(heading.startsWith(query)){score+=10;}if(headingWords.has(query)){score+=10;}if(heading.includes(query)){score+=1;}// Fuzzy match full words in headings.\nfor(const headingWord of headingWords){const distanceScore=distance(query,headingWord);if(distanceScore<=2){score+=1;}}}const descriptionIndex=item.description.indexOf(query);if(descriptionIndex!==-1){score+=10;match.description=getMatchRange(match.description,descriptionIndex,descriptionIndex+query.length);}for(const p of item.p){if(p.includes(query)){score+=.5;}}for(const codeblock of item.codeblock){// If the full query is close to being the codeblock, score this highly as\n// the user is most likely looking for that exact code.\nif(distance(codeblock,fullQuery)<=2){score*=10;}if(codeblock.includes(fullQuery)){score+=10;}if(codeblock.includes(query)){score+=.5;}}return{score,match};}function getSearchIndexItemScore(item,normalizedQuery){const normalizedItem=getNormalizedItemFromCache(item);const queryWords=getUniqueWords(normalizedQuery);let total=0;for(const queryWord of queryWords){const{score}=getScoreForSearchIndexItem(normalizedItem,queryWord,queryWords,normalizedQuery);total+=score;}return total;}function useRawSearch(index,query,settings){const[results,setResults]=useState(null);const[,startTransition]=useTransition();useEffect(()=>{const abortController=new AbortController;executeRawSearch(index,query,settings,abortController.signal).then(res=>{if(!abortController.signal.aborted){startTransition(()=>{setResults(res);});}}).catch(err=>{if(err.name!==\"AbortError\"){console.error(\"Search failed:\",err);}});return()=>{abortController.abort();};},[index,query]);return{results:results??[]};}const QUANTUM=32// ms, 2*16ms (2 frames on 60 hz)\n;async function executeRawSearch(index,query,settings,signal){const path=safeWindow?.location.pathname;time(\"query\");const normalizedQuery=getNormalizedString(query);const results=[];const items=Object.values(index);let deadline=performance.now()+QUANTUM;async function yieldToMainIfNecessary(){if(performance.now()>=deadline){await yieldToMain();deadline=performance.now()+QUANTUM;}}for(let i=0;i<items.length;++i){if(performance.now()>=deadline){await yieldToMainIfNecessary();deadline=performance.now()+QUANTUM;}if(signal?.aborted)return[];const item=items[i];const score=getSearchIndexItemScore(item,normalizedQuery);if(score>(settings.minimumScore||0)&&(!path||item.url!==path)){const heading=item.h1.length&&item.h1[0];const title=settings?.titleType===SearchResultTitleType.Title?item.title:heading?heading:item.title;// Convert index item to result item.\nresults.push({url:item.url,title,description:item.description,body:[...item.p,item.codeblock].join(\" \"),score});}}await yieldToMainIfNecessary();if(signal?.aborted)return[];const sorted=results.sort((itemA,itemB)=>itemB.score-itemA.score);timeEnd(\"query\");await yieldToMainIfNecessary();if(signal?.aborted)return[];return results.slice(0,20);}function getIndexedScopedToUrl(index,rawUrlScope,localeSlug){const scopedIndex={};const baseScopeUrlHasVariable=rawUrlScope.includes(\":\");const urlUpToPathVariable=rawUrlScope.split(\":\")[0];const urlScope=urlUpToPathVariable.length>1?urlUpToPathVariable:\"\";for(const url in index){const strippedURL=stripLocaleSlugFromPath(url,localeSlug);if(!strippedURL.startsWith(urlScope)){continue;}if(baseScopeUrlHasVariable&&url.length<=urlScope.length){continue;}scopedIndex[url]=index[url];}return scopedIndex;}export function useSearch(query,settings){const[searchIndex,_setSearchIndex]=useState({});const[status,setStatus]=useState(\"loading\");const{results}=useRawSearch(searchIndex,query,settings);const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;// Seperate setter function so that the URL scope is always applied\n// to indexes loaded from either the cache or network.\nfunction setSearchIndex(index,options={ignoreScope:false}){let scopedIndex=index;if(settings.urlScope&&!options.ignoreScope){scopedIndex=getIndexedScopedToUrl(index,settings.urlScope,activeLocale?.slug);log(\"Using URL scope\",settings.urlScope);}_setSearchIndex(scopedIndex);}useEffect(()=>{async function loadSearchIndex(){setStatus(\"loading\");const baseUrl=getBaseUrl(\"framer-search-index\");if(!baseUrl){setStatus(\"no-meta-tag-found\");setSearchIndex(fakeResults,{ignoreScope:true});log(\"No meta tag found\");return;}const cacheResult=await getCachedIndex(localeId,baseUrl);if(cacheResult.status===\"fresh\"){setSearchIndex(cacheResult.searchIndex);setStatus(\"success\");log(\"Using fresh cached index\");return;}if(cacheResult.status===\"stale\"){setSearchIndex(cacheResult.searchIndex);setStatus(\"loading-with-cache\");log(\"Using stale cached index while loading a fresh one\");}const searchIndexUrl=getSearchIndexUrl(baseUrl,localeId);const response=await fetch(searchIndexUrl);if(response.ok){const downloadedIndex=await response.json();setSearchIndex(downloadedIndex);setCachedIndex(localeId,downloadedIndex,baseUrl);setStatus(\"success\");log(\"Using downloaded index\");return;}// Our \"sites\" CDN currently returns 403s for missing files.\nconst isNotFound=response.status===403||response.status===404;if(!isNotFound){throw new Error(response.statusText);}// Index is likely still being generated.\nlog(\"Index not found\");const fallbackBaseUrl=getBaseUrl(\"framer-search-index-fallback\");if(!fallbackBaseUrl){if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"No fallback, no cache\");}else{setStatus(\"success\");log(\"No fallback, using cache\");}return;}// If we're here, cache is missing or stale. If it's stale but it's our fallback index, we can use it.\nif(cacheResult.status===\"stale\"&&cacheResult.indexHash===fallbackBaseUrl){setStatus(\"success\");log(\"Using cached fallback index\");return;}const fallbackSearchIndexUrl=getSearchIndexUrl(fallbackBaseUrl,localeId);const fallbackResponse=await fetch(fallbackSearchIndexUrl);if(fallbackResponse.ok){const downloadedIndex=await fallbackResponse.json();setSearchIndex(downloadedIndex);setCachedIndex(localeId,downloadedIndex,fallbackBaseUrl);setStatus(\"success\");log(\"Using downloaded fallback index\");return;}if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"Fallback failed, no cache\");}else{setStatus(\"success\");log(\"Fallback failed, using cache\");}}loadSearchIndex().catch(error=>{// TODO: Check for error type here. If it's a network error,\n// we could do a few retries.\nsetStatus(\"error\");log(\"Failed to load search index\",error);});},[localeId]);log({status,results});return{results,status};}function getBaseUrl(name){return safeDocument?.querySelector(`meta[name=\"${name}\"]`)?.getAttribute(\"content\");}function getSearchIndexUrl(baseURL,localeId){if(isDefaultLocaleId(localeId))return baseURL;return baseURL.replace(\".json\",`-${localeId}.json`);}\nexport const __FramerMetadata__ = {\"exports\":{\"SearchIndex\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useSearch\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useSearch.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useSearch}from\"https://framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/fpvHBWGoGQcWezUopJLS/useSearch.js\";import React,{useEffect,useState,useMemo,forwardRef,useRef,useDeferredValue,useLayoutEffect,useCallback,useImperativeHandle}from\"react\";import{Browser}from\"https://framerusercontent.com/modules/PJVBcBLmDteTEAZh3J9Z/keXJyjyE9VnzUcDMayjg/browser.js\";import{motion,clamp,useAnimate}from\"framer-motion\";import{SearchIcon,ClearIcon,SpinnerIcon}from\"https://framerusercontent.com/modules/LV9trClbmNwd5PVj9l8y/L4rFqMGNzGSwRZpGTGF3/Icons.js\";import{clampText,getFontFamily,localStorageDebugFlag,animationKeyFromLayout,stripLocaleSlugFromPath}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";import{useCallbackOnMouseMove}from\"https://framerusercontent.com/modules/Gzef0nFihI9m9vZG45th/lIUxbZcreiDm2GzUkt3y/useCallbackOnMouseMove.js\";import{scrollIntoView}from\"https://framerusercontent.com/modules/eAnjm75CdfYT1Zz4BIaz/7KDSfnnyD1T3Ap75L4m8/scrollIntoView.js\";import{useLocaleInfo,// @ts-expect-error Internal API\nuseRouter,// @ts-expect-error Internal API\ninferInitialRouteFromPath}from\"framer\";const MAX_DESCRIPTION_LENGTH=120;const MODAL_MAX_HEIGHT=496;const VERTICAL_SPACING_MULTIPLIER=.6;function ClearButton({theme,type,onClick,text}){const shouldDisplayIcon=type===\"icon\";const iconOrText=shouldDisplayIcon?/*#__PURE__*/_jsx(ClearIcon,{style:{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize}}):text;return /*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,fontSize:theme&&theme.titleFont&&theme.titleFont.fontSize?theme.titleFont.fontSize:15},children:/*#__PURE__*/_jsx(\"button\",{className:\"__framer-search-clear-button\",onClick:onClick,style:{fontFamily:\"inherit\",border:\"none\",background:\"none\",cursor:\"pointer\",display:\"flex\",textTransform:\"uppercase\",color:theme.inputIconColor,fontSize:\"0.75em\",padding:0},children:iconOrText})});}function Divider({theme,type}){const styles={background:theme.foregroundColor,height:1,flexShrink:0,opacity:.05};if(type===\"contained\"&&theme){styles.marginLeft=theme.horizontalSpacing;styles.marginRight=theme.horizontalSpacing;}return /*#__PURE__*/_jsx(\"div\",{style:styles});}export const Input=/*#__PURE__*/forwardRef(function Input(props,ref){const{value=\"\",status,autofocus,theme,placeholder,iconType,clearButtonType,onChange}=props;const[inputValue,setInputValue]=useState(value);const[isFocused,setIsFocused]=useState(false);const inputRef=useRef();useImperativeHandle(ref,()=>inputRef.current);React.useLayoutEffect(()=>{// Runs on unmount, fixes a bug in Safari that scrolls to the bottom\n// of the page when the input unmounts.\nreturn()=>{const inputElement=inputRef.current;if(!inputElement||inputElement!==document.activeElement)return;inputElement.blur();};},[]);const handleInputClick=()=>{if(inputRef.current){inputRef.current.focus();}};const handleClearClick=()=>{setInputValue(\"\");};useEffect(()=>{onChange(inputValue);},[inputValue]);const hasInputText=inputValue.length>0;const showClearButton=inputValue.length>0&&clearButtonType&&clearButtonType!==\"none\";const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const searchIcon=iconType===\"custom\"&&theme.inputIconImage?/*#__PURE__*/_jsx(\"img\",{alt:\"icon alongside the Site Search input\",src:theme.inputIconImage.src,width:theme.inputIconSize,height:theme.inputIconSize,decoding:\"async\"}):/*#__PURE__*/_jsx(SearchIcon,{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize});return /*#__PURE__*/_jsxs(\"div\",{role:\"search\",style:{...inputContainerStyle,fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,gap:12,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,touchAction:\"none\"},onClick:handleInputClick,children:[/*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,display:\"flex\"},children:status===\"loading\"&&inputValue?/*#__PURE__*/_jsx(SpinnerIcon,{color:theme.inputIconColor,backgroundColor:theme.backgroundColor,style:{height:theme&&theme.inputIconSize,width:theme&&theme.inputIconSize}}):searchIcon}),/*#__PURE__*/_jsx(\"input\",{ref:inputRef,spellCheck:false,autoFocus:autofocus,style:{...inputStyle,WebkitTapHighlightColor:\"rgba(0,0,0,0)\",color:theme.foregroundColor,lineHeight:\"2em\",verticalAlign:\"baseline\",...theme.titleFont,...theme.inputFont,fontSize:theme.inputFontSize,// @ts-ignore\n\"--framer-search-placeholder-color\":theme.placeholderColor},onFocus:()=>{const scrollOffset=document.documentElement.scrollTop;document.documentElement.scrollTop=scrollOffset;},placeholder:placeholder,value:inputValue,onChange:()=>setInputValue(inputRef.current.value)}),showClearButton&&/*#__PURE__*/_jsx(ClearButton,{theme:theme,type:props.clearButtonType,text:props.clearButtonText,onClick:handleClearClick})]});});const inputContainerStyle={display:\"inline-flex\",alignItems:\"center\",flexShrink:0};const inputStyle={outline:\"none\",border:\"none\",background:\"transparent\",fontWeight:500,height:\"2em\",padding:0,width:\"100%\"};export const ResultRow=/*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function ResultRow(props,ref){const{index,result,prevMousePositionRef,type=\"contained\",subtitleType=\"path\",selected=false,theme,localeSlug,style,onMouseMove,onPointerDown,onNavigateTo}=props;const{url,title,score}=result;const urlPath=useMemo(()=>{return stripLocaleSlugFromPath(url,localeSlug);},[url,localeSlug]);const handleMouseMove=useCallbackOnMouseMove(event=>onMouseMove(event,index),prevMousePositionRef);const isContained=type===\"contained\";const borderRadius=isContained?clamp(0,Infinity,theme.borderRadius-theme.spacing):0;const subtitleText=subtitleType===\"path\"?urlPath:clampText(result.description,MAX_DESCRIPTION_LENGTH);const handleClick=event=>{event.preventDefault();onNavigateTo(result.url);};const focusTrap=event=>{event.preventDefault();};return /*#__PURE__*/_jsx(\"a\",{ref:ref,style:{textDecoration:\"none\"},href:result.url,onClick:handleClick,onMouseMove:handleMouseMove,onMouseDown:focusTrap,onPointerDown:event=>onPointerDown(event,index),children:/*#__PURE__*/_jsxs(\"li\",{style:{...resultContainer,...style,paddingTop:isContained?12:16,paddingBottom:isContained?12:16,color:theme.foregroundColor,position:\"relative\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing},children:[/*#__PURE__*/_jsx(\"div\",{style:{backgroundColor:theme.foregroundColor,position:\"absolute\",opacity:selected?.06:0,borderRadius,left:theme&&isContained?theme.spacing:0,right:theme&&isContained?theme.spacing:0,top:0,bottom:0}}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",gap:4},children:[/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,...theme.titleFont,lineHeight:\"1.4em\"},children:title}),/*#__PURE__*/_jsxs(\"p\",{style:{margin:0,color:theme.subtitleColor,...theme.subtitleFont,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",lineHeight:\"1.4em\"},children:[localStorageDebugFlag?score:\"\",\" \",subtitleText]})]})]},result.url)});}));/**\n * Flexible gap used inside a flexbox layout to push down the quick menu\n * by 20% of the screen height, but also allow it to collapse to zero if\n * there is not enough vertical room.\n */function QuickMenuSpacer({onClick}){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",flexBasis:\"20vh\"},onClick:onClick});}const layoutContainerStyle={display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"flex-start\",gap:15,overflow:\"visible\"};function LayoutContainer({layoutType,theme,onKeyDown,onDismiss,children,modalOptions}){const layoutStyles=getLayoutBaseStyles(layoutType,theme);const style={...layoutContainerStyle,...layoutStyles,willChange:\"transform\",marginTop:layoutType===\"FixedTop\"?theme.offsetTop:0,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\"};const innerStyle={...layoutContainerStyle,...layoutStyles,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",gap:layoutType===\"Sidebar\"?0:theme.gapBetweenStatusAndSearch,backgroundColor:layoutType===\"Sidebar\"?theme.backgroundColor:\"transparent\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\",originX:.5,originY:.5};function getContainerAnimation(){switch(layoutType){case\"FixedTop\":{const key=animationKeyFromLayout(\"FixedTop\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{y:-10,opacity:.2,transition:{duration:Browser.isTouch()?0:.15}};}break;}case\"QuickMenu\":{const key=animationKeyFromLayout(\"QuickMenu\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{scale:.95,opacity:0,y:0,x:0,rotate:0,transition:{type:\"spring\",stiffness:600,damping:40}};}break;}case\"Sidebar\":{const key=animationKeyFromLayout(\"Sidebar\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{x:-10,opacity:0,transition:{duration:.15}};}break;}}}const containerAnimation=getContainerAnimation();return /*#__PURE__*/_jsxs(\"div\",{style:style,onKeyDown:onKeyDown,onClick:event=>event.stopPropagation(),children:[layoutType===\"QuickMenu\"&&/*#__PURE__*/_jsx(QuickMenuSpacer,{onClick:onDismiss}),/*#__PURE__*/_jsx(motion.div,{initial:containerAnimation,animate:{opacity:1,scale:1,x:0,y:0,rotate:0},transition:containerAnimation?containerAnimation.transition:undefined,exit:{opacity:0,transition:{duration:0}},style:innerStyle,children:children})]});}function ModalContainer({layoutType,theme,children,heightIsStatic,heightTransition,heightDeps}){const style={// This `willChange` is required to avoid weird rendering issues where\n// parts of the search window won't redraw, which we observed in Safari 16.4.\nwillChange:\"transform\",backgroundColor:theme.backgroundColor,color:theme.foregroundColor,borderRadius:layoutType===\"QuickMenu\"?theme.borderRadius:0,width:\"100%\",display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",boxShadow:layoutType!==\"Sidebar\"?theme.shadow:undefined,maxHeight:layoutType===\"QuickMenu\"?`min(${MODAL_MAX_HEIGHT}px, calc(100vh - 30px))`:undefined};// Opt-in Height Animations for the Search Quick Actions menu.\n// These are disabled by default, but can be enabled via props.\nconst[scope,animate]=useAnimate();useLayoutEffect(()=>{if(layoutType!==\"QuickMenu\"||heightIsStatic)return;const prevHeight=scope.current.offsetHeight;scope.current.style.height=\"auto\";const height=scope.current.offsetHeight;scope.current.style.height=prevHeight+\"px\";animate(scope.current,{height:[prevHeight,height]},heightTransition);},heightDeps);return /*#__PURE__*/_jsx(\"div\",{ref:scope,role:\"dialog\",className:layoutType===\"FixedTop\"?\"__framer-max-height-80dvh\":undefined,style:style,children:children});}const ScrollView=/*#__PURE__*/React.forwardRef(function ScrollView({theme,children},ref){const isTouch=Browser.isTouch();const[canScroll,setCanScroll]=React.useState(true);React.useEffect(()=>{if(!isTouch)return;const element=ref.current;if(!element)return;setCanScroll(element.scrollHeight>element.clientHeight);});return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{width:`calc(100% + ${theme.scrollBarWidth}px)`,overflowY:\"scroll\",overflowX:\"hidden\",overscrollBehavior:\"contain\",touchAction:canScroll?undefined:\"none\",// Make the list appear slightly under the divider\n// so that the divider is still visible when the first\n// item is selected.\nmarginTop:-1},children:children});});const statusStyle={backgroundColor:\"#B5B5B5\",color:\"#FFF\",boxShadow:\"0px 20px 40px 0px rgba(0, 0, 0, 0.25)\",fontFamily:\"inherit\",textAlign:\"center\",fontSize:13,padding:\"8px 0\"};function StatusMessage({status,layoutType,theme}){const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const style={...statusStyle,userSelect:\"none\",fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,fontWeight:500,lineHeight:`calc(${theme.inputFontSize} * 2)`,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,...theme.titleFont,zIndex:theme.zIndex+1,maxWidth:layoutType===\"FixedTop\"?\"none\":theme.width,width:layoutType===\"FixedTop\"?`calc(100% - ${verticalSpacing*2}px`:\"100%\",boxShadow:layoutType!==\"Sidebar\"&&statusStyle.boxShadow,borderRadius:layoutType!==\"Sidebar\"&&theme.borderRadius};// Show less text on fixed text to look nicer on mobile\nconst previewInfoText=layoutType===\"FixedTop\"?\"Preview Mode\":\"Preview Mode. Publish your Site to Search.\";if(status===\"no-meta-tag-found\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:previewInfoText});}if(status===\"pending-index-generation\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:\"Site is being indexed\"});}return null;}const resultTitle={textOverflow:\"ellipsis\",maxWidth:\"100%\",overflow:\"hidden\",fontWeight:500,whiteSpace:\"nowrap\",flex:1,margin:0};const resultContainer={padding:\"16px 20px\",listStyle:\"none\",fontWeight:500};const sidebarStyles={left:0,width:500};const fixedTopStyles={top:0,width:\"100%\"};const quickMenuStyles={width:500};function getLayoutBaseStyles(layoutOption,theme){switch(layoutOption){case\"Sidebar\":return{...sidebarStyles,width:theme.width};case\"FixedTop\":return fixedTopStyles;case\"QuickMenu\":return{...quickMenuStyles,width:theme.width};}}export var SearchInputClearButtonType;(function(SearchInputClearButtonType){SearchInputClearButtonType[\"Icon\"]=\"icon\";SearchInputClearButtonType[\"Text\"]=\"text\";SearchInputClearButtonType[\"None\"]=\"none\";})(SearchInputClearButtonType||(SearchInputClearButtonType={}));export var SearchInputDividerType;(function(SearchInputDividerType){SearchInputDividerType[\"None\"]=\"none\";SearchInputDividerType[\"FullWidth\"]=\"fullWidth\";SearchInputDividerType[\"Contained\"]=\"contained\";})(SearchInputDividerType||(SearchInputDividerType={}));export var SearchResultTitleType;(function(SearchResultTitleType){SearchResultTitleType[\"H1\"]=\"h1\";SearchResultTitleType[\"Title\"]=\"title\";})(SearchResultTitleType||(SearchResultTitleType={}));export var SearchResultSubtitleType;(function(SearchResultSubtitleType){SearchResultSubtitleType[\"Description\"]=\"description\";SearchResultSubtitleType[\"Path\"]=\"path\";})(SearchResultSubtitleType||(SearchResultSubtitleType={}));export var SearchResultItemType;(function(SearchResultItemType){SearchResultItemType[\"FullWidth\"]=\"fullWidth\";SearchResultItemType[\"Contained\"]=\"contained\";})(SearchResultItemType||(SearchResultItemType={}));export var SearchLayoutType;(function(SearchLayoutType){SearchLayoutType[\"Sidebar\"]=\"Sidebar\";SearchLayoutType[\"FixedTop\"]=\"FixedTop\";SearchLayoutType[\"QuickMenu\"]=\"QuickMenu\";})(SearchLayoutType||(SearchLayoutType={}));export var SearchEntryType;(function(SearchEntryType){SearchEntryType[\"Icon\"]=\"icon\";SearchEntryType[\"Text\"]=\"text\";})(SearchEntryType||(SearchEntryType={}));export var SearchIconType;(function(SearchIconType){SearchIconType[\"Default\"]=\"default\";SearchIconType[\"Custom\"]=\"custom\";})(SearchIconType||(SearchIconType={}));/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export function SearchModal(props){const{layoutType,theme,urlScope,inputOptions,backdropOptions,modalOptions,resultOptions,onDismiss}=props;const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;const localeSlug=activeLocale?.slug;const input=useRef();const selectedResultRow=useRef();const scrollView=useRef();const[selected,setSelected]=useState({index:0,scroll:true});const prevMousePositionRef=useRef(null);const[isKeyboardNavigationDisabled,setIsKeyboardNavigationDisabled]=useState(Browser.isTouch);const[query,setQuery]=useState(\"\");const deferredQuery=useDeferredValue(query);const{results,status}=useSearch(deferredQuery,{minimumScore:0,urlScope,titleType:resultOptions.titleType});const selectedResult=results[selected.index];const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);useEffect(()=>{// Reset the selection to the top if the query changes.\nsetSelected({index:0,scroll:true});},[deferredQuery]);const handleResultRowPointerDown=useCallback((event,index)=>{if(event.pointerType!==\"touch\")return;setIsKeyboardNavigationDisabled(true);setSelected({index,scroll:false});},[]);const handleResultRowMouseMove=useCallback((event,index)=>{setSelected(previousSelected=>{if(previousSelected.index===index){return previousSelected;}return{index,scroll:false};});},[]);const router=useRouter();const navigateTo=useCallback(async url=>{if(status===\"no-meta-tag-found\"){return;}try{// Ideally, we would directly expose `routeId` in the search index so that\n// we don't need to infer it from the URL.\nconst{routeId,pathVariables}=inferInitialRouteFromPath(router.routes,url);const route=router.getRoute?.(routeId);onDismiss();await route?.page?.preload?.();router.navigate?.(routeId,null,pathVariables,false);}catch(error){window.location.href=url;}},[status]);const handleKeyDown=event=>{const maxIndex=results.length-1;switch(event.code){case\"ArrowUp\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index-1),scroll:true}));break;case\"ArrowDown\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index+1),scroll:true}));break;case\"Escape\":break;case\"Enter\":if(selectedResult){navigateTo(selectedResult.url);}break;default:event.stopPropagation();}};const showNoResults=results.length===0&&deferredQuery.length>1&&status!==\"loading\";const showDivider=Boolean((deferredQuery.length>0&&results.length>0||showNoResults)&&status!==\"loading\"&&props.inputOptions&&props.inputOptions.dividerType!==\"none\");const isItemContained=Boolean(props.resultOptions&&props.resultOptions.itemType===\"contained\");const spacing=isItemContained?theme.spacing:10;const listPaddingTop=showDivider&&isItemContained?spacing+theme.gapBetweenResults*2:0;useEffect(()=>{if(!selected.scroll)return;const element=selectedResultRow.current;if(!element)return;scrollIntoView(element,scrollView.current,{offsetTop:showDivider&&isItemContained?listPaddingTop:0,offsetBottom:isItemContained?spacing:0});// `showDivider` and `isItemContained` are not dependencies because\n// they will be the latest values when `selected` changes. And including\n// them will cause unnecessary scrolling into view.\n},[selected]);return /*#__PURE__*/_jsxs(LayoutContainer,{layoutType:layoutType,modalOptions:modalOptions,theme:theme,onKeyDown:handleKeyDown,onDismiss:onDismiss,children:[/*#__PURE__*/_jsxs(ModalContainer,{layoutType:layoutType,theme:theme,heightIsStatic:modalOptions.heightIsStatic,heightTransition:modalOptions.heightTransition,heightDeps:[results.length,showNoResults],children:[/*#__PURE__*/_jsx(Input,{autofocus:true,ref:input,onChange:setQuery,value:query,theme:theme,status:status,iconType:inputOptions.iconOptions.iconType,placeholder:inputOptions.placeholderOptions.placeholderText,clearButtonType:inputOptions?inputOptions.clearButtonType:undefined,clearButtonText:inputOptions.clearButtonText}),showDivider&&/*#__PURE__*/_jsx(Divider,{theme:theme,type:inputOptions.dividerType}),/*#__PURE__*/_jsx(ScrollView,{ref:scrollView,theme:theme,children:/*#__PURE__*/_jsxs(\"ul\",{\"aria-live\":\"polite\",style:{display:\"flex\",flexDirection:\"column\",width:`calc(100% - ${theme.scrollBarWidth}px)`,padding:0,paddingTop:listPaddingTop,paddingBottom:results.length&&isItemContained?spacing:0,gap:theme.gapBetweenResults,margin:0},children:[results.map((result,index)=>{const isSelected=index===selected.index;return /*#__PURE__*/_jsx(ResultRow,{ref:isSelected?selectedResultRow:null,index:index,result:result,prevMousePositionRef:prevMousePositionRef,selected:!isKeyboardNavigationDisabled&&isSelected,type:props.resultOptions.itemType,subtitleType:props.resultOptions.subtitleOptions.subtitleType,theme:theme,localeSlug:localeSlug,onMouseMove:handleResultRowMouseMove,onPointerDown:handleResultRowPointerDown,onNavigateTo:navigateTo},result.url);}),showNoResults&&/*#__PURE__*/_jsx(\"li\",{style:{paddingTop:verticalSpacing-listPaddingTop,paddingBottom:verticalSpacing,lineHeight:\"2em\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,height:\"Sidebar\"?\"100%\":\"auto\"},children:/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,textAlign:\"center\",lineHeight:`calc(${theme.inputFontSize} * 2)`,color:theme.subtitleColor,...theme.titleFont},children:\"No results\"})})]})})]}),/*#__PURE__*/_jsx(StatusMessage,{status:status,layoutType:layoutType,theme:theme})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"ResultRow\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultTitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultItemType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchLayoutType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputDividerType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchTheme\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultSubtitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchModal\":{\"type\":\"reactComponent\",\"name\":\"SearchModal\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"SearchIconType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Input\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchEntryType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputClearButtonType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-ignore\nimport{useLocaleInfo}from\"framer\";import{clamp}from\"framer-motion\";import{useEffect,useState,useTransition}from\"react\";import{SearchResultTitleType}from\"https://framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/1GynhDlRW7uuXFYW1RXb/SearchModal.js\";import{getCachedIndex,isDefaultLocaleId,setCachedIndex}from\"https://framerusercontent.com/modules/uU1mtMKXsrVAg8N5hW7w/v7gDLwKJgQ5vAsFHxY4H/cachedIndex.js\";import{fakeResults}from\"https://framerusercontent.com/modules/K9JZRwJcE6slDAf8rUmh/mJ54py1Ecnn1RoC4N1m4/fakeResults.js\";import{distance}from\"https://framerusercontent.com/modules/TwRgbWuhHeB95MPifel4/YW8Hlm59FG3PajbrVsaR/fuzzySearch.js\";import{createLogger,localStorageDebugFlag,safeDocument,safeWindow,stripLocaleSlugFromPath,yieldToMain}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";const{log,time,timeEnd}=createLogger(localStorageDebugFlag);const splitWordsRegex=(()=>{try{// Regex lookbehind is used to ignore ampersands when splitting\n// words. For example \"H&M\" will not be split and is considered as\n// one word, but \"H & M\" will be split.\n// However, some browsers (like Safari iOS 15) don't support\n// lookbehind and will crash. When it's not supported, fallback to\n// a safer regex that always splits ampersands.\nconst regex=RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+(?<!\\\\p{L}&)(?!&\\\\p{L})\",\"u\");\"\".split(regex);return regex;}catch{log(\"Falling back to regex without lookbehind\");return RegExp(\"[\\\\s.,;!?\\\\p{P}\\\\p{Z}]+\",\"u\");}})();function splitWords(text){return text.split(splitWordsRegex);}function getUniqueWords(str){const words=splitWords(str).filter(word=>word.trim()&&word.length>0);return new Set(words);}const normalizeRegex=/[\\u0300-\\u036f]/g;/**\n * Replace accented characters with equivilant non-accented versions and\n * make everything lowercase.\n */function getNormalizedString(text){if(Array.isArray(text)){return text.map(getNormalizedString);}return text.normalize(\"NFD\")// From: https://stackoverflow.com/a/37511463\n.replace(normalizeRegex,\"\").toLowerCase();}const normalizedItemCache=new WeakMap;function getNormalizedItemFromCache(item){const cached=normalizedItemCache.get(item);if(cached)return cached;const normalizedItem=getNormalizedItem(item);normalizedItemCache.set(item,normalizedItem);return normalizedItem;}function getNormalizedItem(item){const normalizedItem={};for(const key in item){if(item.hasOwnProperty(key)){const value=item[key];if(typeof value===\"string\"){normalizedItem[key]=getNormalizedString(value);continue;}if(Array.isArray(value)){normalizedItem[key]=getNormalizedString(value);continue;}normalizedItem[key]=value;}}return normalizedItem;}function getMatchRange(currentRange,start,end){const result={...currentRange};if(start<result.start){result.start=start;}if(end>result.end){result.end=end;}return result;}/**\n * Score index item based on the contents of it's fields such as title, description, headings etc.\n *\n * Note that this does not normalize the item or query. Normalization is expected to happen\n * before passing the data into this.\n */function getScoreForSearchIndexItem(item,query,words,fullQuery){let score=0;const match={title:{start:Infinity,end:0},description:{start:Infinity,end:0}};const urlWords=getUniqueWords(item.url);// Match query based on words in the URL so that random strings inside\n// other strings are not matched.\nif(urlWords.has(query)){score+=10;}// Really boost single word queries that match single word URLs.\nif(words.size===1&&urlWords.size===1&&urlWords.values().next().value===query){score+=score*5;}// Score shorter URLs higher so `/pricing` is before `/lala/pricing`.\nif(score>0){const splitLength=item.url.split(\"/\").length;score+=clamp(10-splitLength,0,splitLength);}const titleWords=getUniqueWords(item.title);// Prefer full word matches in the title.\nif(titleWords.has(query)){score+=10;}const titleIndex=item.title.indexOf(query);if(titleIndex!==-1){score+=10;// TODO: Matches are currently not used, but they can be used in the\n// future to add text highlighting.\nmatch.title=getMatchRange(match.title,titleIndex,titleIndex+query.length);}// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(item.title,fullQuery)<=2){score+=score*10;}// Fuzzy match full words in the title.\nfor(const titleWord of titleWords){const distanceScore=distance(query,titleWord);// Small distance score helps with small typos.\nif(distanceScore<=2){score+=10;}}const headings=[...item.h1,...item.h2,...item.h3,...item.h4,...item.h5,...item.h6];for(const heading of headings){const headingWords=getUniqueWords(heading);// If the full query is close to being the heading, score this highly as\n// the user is most likely looking for that exact title.\nif(distance(heading,fullQuery)<=2){score+=score*10;}// Bias headings that start with the query as this helps when\n// you know the title you are searching for.\nif(heading.startsWith(query)){score+=10;}if(headingWords.has(query)){score+=10;}if(heading.includes(query)){score+=1;}// Fuzzy match full words in headings.\nfor(const headingWord of headingWords){const distanceScore=distance(query,headingWord);if(distanceScore<=2){score+=1;}}}const descriptionIndex=item.description.indexOf(query);if(descriptionIndex!==-1){score+=10;match.description=getMatchRange(match.description,descriptionIndex,descriptionIndex+query.length);}for(const p of item.p){if(p.includes(query)){score+=.5;}}for(const codeblock of item.codeblock){// If the full query is close to being the codeblock, score this highly as\n// the user is most likely looking for that exact code.\nif(distance(codeblock,fullQuery)<=2){score*=10;}if(codeblock.includes(fullQuery)){score+=10;}if(codeblock.includes(query)){score+=.5;}}return{score,match};}function getSearchIndexItemScore(item,normalizedQuery){const normalizedItem=getNormalizedItemFromCache(item);const queryWords=getUniqueWords(normalizedQuery);let total=0;for(const queryWord of queryWords){const{score}=getScoreForSearchIndexItem(normalizedItem,queryWord,queryWords,normalizedQuery);total+=score;}return total;}function useRawSearch(index,query,settings){const[results,setResults]=useState(null);const[,startTransition]=useTransition();useEffect(()=>{const abortController=new AbortController;executeRawSearch(index,query,settings,abortController.signal).then(res=>{if(!abortController.signal.aborted){startTransition(()=>{setResults(res);});}}).catch(err=>{if(err.name!==\"AbortError\"){console.error(\"Search failed:\",err);}});return()=>{abortController.abort();};},[index,query]);return{results:results??[]};}const QUANTUM=32// ms, 2*16ms (2 frames on 60 hz)\n;async function executeRawSearch(index,query,settings,signal){const path=safeWindow?.location.pathname;time(\"query\");const normalizedQuery=getNormalizedString(query);const results=[];const items=Object.values(index);let deadline=performance.now()+QUANTUM;async function yieldToMainIfNecessary(){if(performance.now()>=deadline){await yieldToMain();deadline=performance.now()+QUANTUM;}}for(let i=0;i<items.length;++i){if(performance.now()>=deadline){await yieldToMainIfNecessary();deadline=performance.now()+QUANTUM;}if(signal?.aborted)return[];const item=items[i];const score=getSearchIndexItemScore(item,normalizedQuery);if(score>(settings.minimumScore||0)&&(!path||item.url!==path)){const heading=item.h1.length&&item.h1[0];const title=settings?.titleType===SearchResultTitleType.Title?item.title:heading?heading:item.title;// Convert index item to result item.\nresults.push({url:item.url,title,description:item.description,body:[...item.p,item.codeblock].join(\" \"),score});}}await yieldToMainIfNecessary();if(signal?.aborted)return[];const sorted=results.sort((itemA,itemB)=>itemB.score-itemA.score);timeEnd(\"query\");await yieldToMainIfNecessary();if(signal?.aborted)return[];return results.slice(0,20);}function getIndexedScopedToUrl(index,rawUrlScope,localeSlug){const scopedIndex={};const baseScopeUrlHasVariable=rawUrlScope.includes(\":\");const urlUpToPathVariable=rawUrlScope.split(\":\")[0];const urlScope=urlUpToPathVariable.length>1?urlUpToPathVariable:\"\";for(const url in index){const strippedURL=stripLocaleSlugFromPath(url,localeSlug);if(!strippedURL.startsWith(urlScope)){continue;}if(baseScopeUrlHasVariable&&url.length<=urlScope.length){continue;}scopedIndex[url]=index[url];}return scopedIndex;}export function useSearch(query,settings){const[searchIndex,_setSearchIndex]=useState({});const[status,setStatus]=useState(\"loading\");const{results}=useRawSearch(searchIndex,query,settings);const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;// Seperate setter function so that the URL scope is always applied\n// to indexes loaded from either the cache or network.\nfunction setSearchIndex(index,options={ignoreScope:false}){let scopedIndex=index;if(settings.urlScope&&!options.ignoreScope){scopedIndex=getIndexedScopedToUrl(index,settings.urlScope,activeLocale?.slug);log(\"Using URL scope\",settings.urlScope);}_setSearchIndex(scopedIndex);}useEffect(()=>{async function loadSearchIndex(){setStatus(\"loading\");const baseUrl=getBaseUrl(\"framer-search-index\");if(!baseUrl){setStatus(\"no-meta-tag-found\");setSearchIndex(fakeResults,{ignoreScope:true});log(\"No meta tag found\");return;}const cacheResult=await getCachedIndex(localeId,baseUrl);if(cacheResult.status===\"fresh\"){setSearchIndex(cacheResult.searchIndex);setStatus(\"success\");log(\"Using fresh cached index\");return;}if(cacheResult.status===\"stale\"){setSearchIndex(cacheResult.searchIndex);setStatus(\"loading-with-cache\");log(\"Using stale cached index while loading a fresh one\");}const searchIndexUrl=getSearchIndexUrl(baseUrl,localeId);const response=await fetch(searchIndexUrl);if(response.ok){const downloadedIndex=await response.json();setSearchIndex(downloadedIndex);setCachedIndex(localeId,downloadedIndex,baseUrl);setStatus(\"success\");log(\"Using downloaded index\");return;}// Our \"sites\" CDN currently returns 403s for missing files.\nconst isNotFound=response.status===403||response.status===404;if(!isNotFound){throw new Error(response.statusText);}// Index is likely still being generated.\nlog(\"Index not found\");const fallbackBaseUrl=getBaseUrl(\"framer-search-index-fallback\");if(!fallbackBaseUrl){if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"No fallback, no cache\");}else{setStatus(\"success\");log(\"No fallback, using cache\");}return;}// If we're here, cache is missing or stale.\n// If it's stale but it's our fallback index, we can use it.\nif(cacheResult.status===\"stale\"&&cacheResult.indexHash===fallbackBaseUrl){setStatus(\"success\");log(\"Using cached fallback index\");return;}const fallbackSearchIndexUrl=getSearchIndexUrl(fallbackBaseUrl,localeId);const fallbackResponse=await fetch(fallbackSearchIndexUrl);if(fallbackResponse.ok){const downloadedIndex=await fallbackResponse.json();setSearchIndex(downloadedIndex);setCachedIndex(localeId,downloadedIndex,fallbackBaseUrl);setStatus(\"success\");log(\"Using downloaded fallback index\");return;}if(cacheResult.status===\"miss\"){setStatus(\"pending-index-generation\");log(\"Fallback failed, no cache\");}else{setStatus(\"success\");log(\"Fallback failed, using cache\");}}loadSearchIndex().catch(error=>{// TODO: Check for error type here. If it's a network error,\n// we could do a few retries.\nsetStatus(\"error\");log(\"Failed to load search index\",error);});},[localeId]);log({status,results});return{results,status};}function getBaseUrl(name){return safeDocument?.querySelector(`meta[name=\"${name}\"]`)?.getAttribute(\"content\");}function getSearchIndexUrl(baseURL,localeId){if(isDefaultLocaleId(localeId))return baseURL;return baseURL.replace(\".json\",`-${localeId}.json`);}\nexport const __FramerMetadata__ = {\"exports\":{\"SearchIndex\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useSearch\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useSearch.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useSearch}from\"https://framerusercontent.com/modules/MyBp84Z0p9nUcMimVMnY/1vZ2fdkLJI4IprrVTHqR/useSearch.js\";import React,{useEffect,useState,useMemo,forwardRef,useRef,useDeferredValue,useLayoutEffect,useCallback,useImperativeHandle}from\"react\";import{Browser}from\"https://framerusercontent.com/modules/PJVBcBLmDteTEAZh3J9Z/keXJyjyE9VnzUcDMayjg/browser.js\";import{motion,clamp,useAnimate}from\"framer-motion\";import{SearchIcon,ClearIcon,SpinnerIcon}from\"https://framerusercontent.com/modules/LV9trClbmNwd5PVj9l8y/L4rFqMGNzGSwRZpGTGF3/Icons.js\";import{clampText,getFontFamily,localStorageDebugFlag,animationKeyFromLayout,stripLocaleSlugFromPath}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";import{useCallbackOnMouseMove}from\"https://framerusercontent.com/modules/Gzef0nFihI9m9vZG45th/lIUxbZcreiDm2GzUkt3y/useCallbackOnMouseMove.js\";import{scrollIntoView}from\"https://framerusercontent.com/modules/eAnjm75CdfYT1Zz4BIaz/7KDSfnnyD1T3Ap75L4m8/scrollIntoView.js\";import{useLocaleInfo,// @ts-expect-error Internal API\nuseRouter,// @ts-expect-error Internal API\ninferInitialRouteFromPath}from\"framer\";const MAX_DESCRIPTION_LENGTH=120;const MODAL_MAX_HEIGHT=496;const VERTICAL_SPACING_MULTIPLIER=.6;function ClearButton({theme,type,onClick,text}){const shouldDisplayIcon=type===\"icon\";const iconOrText=shouldDisplayIcon?/*#__PURE__*/_jsx(ClearIcon,{style:{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize}}):text;return /*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,fontSize:theme&&theme.titleFont&&theme.titleFont.fontSize?theme.titleFont.fontSize:15},children:/*#__PURE__*/_jsx(\"button\",{className:\"__framer-search-clear-button\",onClick:onClick,style:{fontFamily:\"inherit\",border:\"none\",background:\"none\",cursor:\"pointer\",display:\"flex\",textTransform:\"uppercase\",color:theme.inputIconColor,fontSize:\"0.75em\",padding:0},children:iconOrText})});}function Divider({theme,type}){const styles={background:theme.foregroundColor,height:1,flexShrink:0,opacity:.05};if(type===\"contained\"&&theme){styles.marginLeft=theme.horizontalSpacing;styles.marginRight=theme.horizontalSpacing;}return /*#__PURE__*/_jsx(\"div\",{style:styles});}export const Input=/*#__PURE__*/forwardRef(function Input(props,ref){const{value=\"\",status,autofocus,theme,placeholder,iconType,clearButtonType,onChange}=props;const[inputValue,setInputValue]=useState(value);const[isFocused,setIsFocused]=useState(false);const inputRef=useRef();useImperativeHandle(ref,()=>inputRef.current);React.useLayoutEffect(()=>{// Runs on unmount, fixes a bug in Safari that scrolls to the bottom\n// of the page when the input unmounts.\nreturn()=>{const inputElement=inputRef.current;if(!inputElement||inputElement!==document.activeElement)return;inputElement.blur();};},[]);const handleInputClick=()=>{if(inputRef.current){inputRef.current.focus();}};const handleClearClick=()=>{setInputValue(\"\");};useEffect(()=>{onChange(inputValue);},[inputValue]);const hasInputText=inputValue.length>0;const showClearButton=inputValue.length>0&&clearButtonType&&clearButtonType!==\"none\";const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const searchIcon=iconType===\"custom\"&&theme.inputIconImage?/*#__PURE__*/_jsx(\"img\",{alt:\"icon alongside the Site Search input\",src:theme.inputIconImage.src,width:theme.inputIconSize,height:theme.inputIconSize,decoding:\"async\"}):/*#__PURE__*/_jsx(SearchIcon,{color:theme.inputIconColor,width:theme.inputIconSize,height:theme.inputIconSize});return /*#__PURE__*/_jsxs(\"div\",{role:\"search\",style:{...inputContainerStyle,fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,gap:12,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,touchAction:\"none\"},onClick:handleInputClick,children:[/*#__PURE__*/_jsx(\"div\",{style:{flexShrink:0,display:\"flex\"},children:status===\"loading\"&&inputValue?/*#__PURE__*/_jsx(SpinnerIcon,{color:theme.inputIconColor,backgroundColor:theme.backgroundColor,style:{height:theme&&theme.inputIconSize,width:theme&&theme.inputIconSize}}):searchIcon}),/*#__PURE__*/_jsx(\"input\",{ref:inputRef,spellCheck:false,autoFocus:autofocus,style:{...inputStyle,WebkitTapHighlightColor:\"rgba(0,0,0,0)\",color:theme.foregroundColor,lineHeight:\"2em\",verticalAlign:\"baseline\",...theme.titleFont,...theme.inputFont,fontSize:theme.inputFontSize,// @ts-ignore\n\"--framer-search-placeholder-color\":theme.placeholderColor},onFocus:()=>{const scrollOffset=document.documentElement.scrollTop;document.documentElement.scrollTop=scrollOffset;},placeholder:placeholder,value:inputValue,onChange:()=>setInputValue(inputRef.current.value)}),showClearButton&&/*#__PURE__*/_jsx(ClearButton,{theme:theme,type:props.clearButtonType,text:props.clearButtonText,onClick:handleClearClick})]});});const inputContainerStyle={display:\"inline-flex\",alignItems:\"center\",flexShrink:0};const inputStyle={outline:\"none\",border:\"none\",background:\"transparent\",fontWeight:500,height:\"2em\",padding:0,width:\"100%\"};export const ResultRow=/*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function ResultRow(props,ref){const{index,result,prevMousePositionRef,type=\"contained\",subtitleType=\"path\",selected=false,theme,localeSlug,style,onMouseMove,onPointerDown,onNavigateTo}=props;const{url,title,score}=result;const urlPath=useMemo(()=>{return stripLocaleSlugFromPath(url,localeSlug);},[url,localeSlug]);const handleMouseMove=useCallbackOnMouseMove(event=>onMouseMove(event,index),prevMousePositionRef);const isContained=type===\"contained\";const borderRadius=isContained?clamp(0,Infinity,theme.borderRadius-theme.spacing):0;const subtitleText=subtitleType===\"path\"?urlPath:clampText(result.description,MAX_DESCRIPTION_LENGTH);const handleClick=event=>{event.preventDefault();onNavigateTo(result.url);};const focusTrap=event=>{event.preventDefault();};return /*#__PURE__*/_jsx(\"a\",{ref:ref,style:{textDecoration:\"none\"},href:result.url,onClick:handleClick,onMouseMove:handleMouseMove,onMouseDown:focusTrap,onPointerDown:event=>onPointerDown(event,index),children:/*#__PURE__*/_jsxs(\"li\",{style:{...resultContainer,...style,paddingTop:isContained?12:16,paddingBottom:isContained?12:16,color:theme.foregroundColor,position:\"relative\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing},children:[/*#__PURE__*/_jsx(\"div\",{style:{backgroundColor:theme.foregroundColor,position:\"absolute\",opacity:selected?.06:0,borderRadius,left:theme&&isContained?theme.spacing:0,right:theme&&isContained?theme.spacing:0,top:0,bottom:0}}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",gap:4},children:[/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,...theme.titleFont,lineHeight:\"1.4em\"},children:title}),/*#__PURE__*/_jsxs(\"p\",{style:{margin:0,color:theme.subtitleColor,...theme.subtitleFont,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",lineHeight:\"1.4em\"},children:[localStorageDebugFlag?score:\"\",\" \",subtitleText]})]})]},result.url)});}));/**\n * Flexible gap used inside a flexbox layout to push down the quick menu\n * by 20% of the screen height, but also allow it to collapse to zero if\n * there is not enough vertical room.\n */function QuickMenuSpacer({onClick}){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",flexBasis:\"20vh\"},onClick:onClick});}const layoutContainerStyle={display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"flex-start\",gap:15,overflow:\"visible\"};function LayoutContainer({layoutType,theme,onKeyDown,onDismiss,children,modalOptions}){const layoutStyles=getLayoutBaseStyles(layoutType,theme);const style={...layoutContainerStyle,...layoutStyles,willChange:\"transform\",marginTop:layoutType===\"FixedTop\"?theme.offsetTop:0,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\"};const innerStyle={...layoutContainerStyle,...layoutStyles,height:layoutType===\"Sidebar\"?\"100%\":\"auto\",maxHeight:layoutType===\"QuickMenu\"?\"100%\":\"none\",gap:layoutType===\"Sidebar\"?0:theme.gapBetweenStatusAndSearch,backgroundColor:layoutType===\"Sidebar\"?theme.backgroundColor:\"transparent\",justifyContent:layoutType===\"Sidebar\"?\"flex-end\":\"flex-start\",flexDirection:layoutType===\"Sidebar\"?\"column-reverse\":\"column\",originX:.5,originY:.5};function getContainerAnimation(){switch(layoutType){case\"FixedTop\":{const key=animationKeyFromLayout(\"FixedTop\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{y:-10,opacity:.2,transition:{duration:Browser.isTouch()?0:.15}};}break;}case\"QuickMenu\":{const key=animationKeyFromLayout(\"QuickMenu\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{scale:.95,opacity:0,y:0,x:0,rotate:0,transition:{type:\"spring\",stiffness:600,damping:40}};}break;}case\"Sidebar\":{const key=animationKeyFromLayout(\"Sidebar\");const prop=modalOptions?modalOptions[key]:undefined;if(prop){return prop;}else{return{x:-10,opacity:0,transition:{duration:.15}};}break;}}}const containerAnimation=getContainerAnimation();return /*#__PURE__*/_jsxs(\"div\",{style:style,onKeyDown:onKeyDown,onClick:event=>event.stopPropagation(),children:[layoutType===\"QuickMenu\"&&/*#__PURE__*/_jsx(QuickMenuSpacer,{onClick:onDismiss}),/*#__PURE__*/_jsx(motion.div,{initial:containerAnimation,animate:{opacity:1,scale:1,x:0,y:0,rotate:0},transition:containerAnimation?containerAnimation.transition:undefined,exit:{opacity:0,transition:{duration:0}},style:innerStyle,children:children})]});}function ModalContainer({layoutType,theme,children,heightIsStatic,heightTransition,heightDeps}){const style={// This `willChange` is required to avoid weird rendering issues where\n// parts of the search window won't redraw, which we observed in Safari 16.4.\nwillChange:\"transform\",backgroundColor:theme.backgroundColor,color:theme.foregroundColor,borderRadius:layoutType===\"QuickMenu\"?theme.borderRadius:0,width:\"100%\",display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",boxShadow:layoutType!==\"Sidebar\"?theme.shadow:undefined,maxHeight:layoutType===\"QuickMenu\"?`min(${MODAL_MAX_HEIGHT}px, calc(100vh - 30px))`:undefined};// Opt-in Height Animations for the Search Quick Actions menu.\n// These are disabled by default, but can be enabled via props.\nconst[scope,animate]=useAnimate();useLayoutEffect(()=>{if(layoutType!==\"QuickMenu\"||heightIsStatic)return;const prevHeight=scope.current.offsetHeight;scope.current.style.height=\"auto\";const height=scope.current.offsetHeight;scope.current.style.height=prevHeight+\"px\";animate(scope.current,{height:[prevHeight,height]},heightTransition);},heightDeps);return /*#__PURE__*/_jsx(\"div\",{ref:scope,role:\"dialog\",className:layoutType===\"FixedTop\"?\"__framer-max-height-80dvh\":undefined,style:style,children:children});}const ScrollView=/*#__PURE__*/React.forwardRef(function ScrollView({theme,children},ref){const isTouch=Browser.isTouch();const[canScroll,setCanScroll]=React.useState(true);React.useEffect(()=>{if(!isTouch)return;const element=ref.current;if(!element)return;setCanScroll(element.scrollHeight>element.clientHeight);});return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{width:`calc(100% + ${theme.scrollBarWidth}px)`,overflowY:\"scroll\",overflowX:\"hidden\",overscrollBehavior:\"contain\",touchAction:canScroll?undefined:\"none\",// Make the list appear slightly under the divider\n// so that the divider is still visible when the first\n// item is selected.\nmarginTop:-1},children:children});});const statusStyle={backgroundColor:\"#B5B5B5\",color:\"#FFF\",boxShadow:\"0px 20px 40px 0px rgba(0, 0, 0, 0.25)\",fontFamily:\"inherit\",textAlign:\"center\",fontSize:13,padding:\"8px 0\"};function StatusMessage({status,layoutType,theme}){const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);const style={...statusStyle,userSelect:\"none\",fontFamily:getFontFamily(theme),paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,fontWeight:500,lineHeight:`calc(${theme.inputFontSize} * 2)`,paddingTop:verticalSpacing,paddingBottom:verticalSpacing,...theme.titleFont,zIndex:theme.zIndex+1,maxWidth:layoutType===\"FixedTop\"?\"none\":theme.width,width:layoutType===\"FixedTop\"?`calc(100% - ${verticalSpacing*2}px`:\"100%\",boxShadow:layoutType!==\"Sidebar\"&&statusStyle.boxShadow,borderRadius:layoutType!==\"Sidebar\"&&theme.borderRadius};// Show less text on fixed text to look nicer on mobile\nconst previewInfoText=layoutType===\"FixedTop\"?\"Preview Mode\":\"Preview Mode. Publish your Site to Search.\";if(status===\"no-meta-tag-found\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:previewInfoText});}if(status===\"pending-index-generation\"){return /*#__PURE__*/_jsx(\"div\",{style:style,children:\"Site is being indexed\"});}return null;}const resultTitle={textOverflow:\"ellipsis\",maxWidth:\"100%\",overflow:\"hidden\",fontWeight:500,whiteSpace:\"nowrap\",flex:1,margin:0};const resultContainer={padding:\"16px 20px\",listStyle:\"none\",fontWeight:500};const sidebarStyles={left:0,width:500};const fixedTopStyles={top:0,width:\"100%\"};const quickMenuStyles={width:500};function getLayoutBaseStyles(layoutOption,theme){switch(layoutOption){case\"Sidebar\":return{...sidebarStyles,width:theme.width};case\"FixedTop\":return fixedTopStyles;case\"QuickMenu\":return{...quickMenuStyles,width:theme.width};}}export var SearchInputClearButtonType;(function(SearchInputClearButtonType){SearchInputClearButtonType[\"Icon\"]=\"icon\";SearchInputClearButtonType[\"Text\"]=\"text\";SearchInputClearButtonType[\"None\"]=\"none\";})(SearchInputClearButtonType||(SearchInputClearButtonType={}));export var SearchInputDividerType;(function(SearchInputDividerType){SearchInputDividerType[\"None\"]=\"none\";SearchInputDividerType[\"FullWidth\"]=\"fullWidth\";SearchInputDividerType[\"Contained\"]=\"contained\";})(SearchInputDividerType||(SearchInputDividerType={}));export var SearchResultTitleType;(function(SearchResultTitleType){SearchResultTitleType[\"H1\"]=\"h1\";SearchResultTitleType[\"Title\"]=\"title\";})(SearchResultTitleType||(SearchResultTitleType={}));export var SearchResultSubtitleType;(function(SearchResultSubtitleType){SearchResultSubtitleType[\"Description\"]=\"description\";SearchResultSubtitleType[\"Path\"]=\"path\";})(SearchResultSubtitleType||(SearchResultSubtitleType={}));export var SearchResultItemType;(function(SearchResultItemType){SearchResultItemType[\"FullWidth\"]=\"fullWidth\";SearchResultItemType[\"Contained\"]=\"contained\";})(SearchResultItemType||(SearchResultItemType={}));export var SearchLayoutType;(function(SearchLayoutType){SearchLayoutType[\"Sidebar\"]=\"Sidebar\";SearchLayoutType[\"FixedTop\"]=\"FixedTop\";SearchLayoutType[\"QuickMenu\"]=\"QuickMenu\";})(SearchLayoutType||(SearchLayoutType={}));export var SearchEntryType;(function(SearchEntryType){SearchEntryType[\"Icon\"]=\"icon\";SearchEntryType[\"Text\"]=\"text\";})(SearchEntryType||(SearchEntryType={}));export var SearchIconType;(function(SearchIconType){SearchIconType[\"Default\"]=\"default\";SearchIconType[\"Custom\"]=\"custom\";})(SearchIconType||(SearchIconType={}));/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export function SearchModal(props){const{layoutType,theme,urlScope,inputOptions,backdropOptions,modalOptions,resultOptions,onDismiss}=props;const{activeLocale}=useLocaleInfo();const localeId=activeLocale?.id;const localeSlug=activeLocale?.slug;const input=useRef();const selectedResultRow=useRef();const scrollView=useRef();const[selected,setSelected]=useState({index:0,scroll:true});const prevMousePositionRef=useRef(null);const[isKeyboardNavigationDisabled,setIsKeyboardNavigationDisabled]=useState(Browser.isTouch);const[query,setQuery]=useState(\"\");const deferredQuery=useDeferredValue(query);const{results,status}=useSearch(deferredQuery,{minimumScore:0,urlScope,titleType:resultOptions.titleType});const selectedResult=results[selected.index];const verticalSpacing=Math.floor(theme?theme.horizontalSpacing*VERTICAL_SPACING_MULTIPLIER:0);useEffect(()=>{// Reset the selection to the top if the query changes.\nsetSelected({index:0,scroll:true});},[deferredQuery]);const handleResultRowPointerDown=useCallback((event,index)=>{if(event.pointerType!==\"touch\")return;setIsKeyboardNavigationDisabled(true);setSelected({index,scroll:false});},[]);const handleResultRowMouseMove=useCallback((event,index)=>{setSelected(previousSelected=>{if(previousSelected.index===index){return previousSelected;}return{index,scroll:false};});},[]);const router=useRouter();const navigateTo=useCallback(async url=>{if(status===\"no-meta-tag-found\"){return;}try{// Ideally, we would directly expose `routeId` in the search index so that\n// we don't need to infer it from the URL.\nconst{routeId,pathVariables}=inferInitialRouteFromPath(router.routes,url);const route=router.getRoute?.(routeId);onDismiss();await route?.page?.preload?.();router.navigate?.(routeId,null,pathVariables,false);}catch(error){window.location.href=url;}},[status]);const handleKeyDown=event=>{const maxIndex=results.length-1;switch(event.code){case\"ArrowUp\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index-1),scroll:true}));break;case\"ArrowDown\":event.preventDefault();if(isKeyboardNavigationDisabled){setIsKeyboardNavigationDisabled(false);break;}setSelected(previousSelected=>({index:clamp(0,maxIndex,previousSelected.index+1),scroll:true}));break;case\"Escape\":break;case\"Enter\":if(selectedResult){navigateTo(selectedResult.url);}break;default:event.stopPropagation();}};const showNoResults=results.length===0&&deferredQuery.length>1&&status!==\"loading\";const showDivider=Boolean((deferredQuery.length>0&&results.length>0||showNoResults)&&status!==\"loading\"&&props.inputOptions&&props.inputOptions.dividerType!==\"none\");const isItemContained=Boolean(props.resultOptions&&props.resultOptions.itemType===\"contained\");const spacing=isItemContained?theme.spacing:10;const listPaddingTop=showDivider&&isItemContained?spacing+theme.gapBetweenResults*2:0;useEffect(()=>{if(!selected.scroll)return;const element=selectedResultRow.current;if(!element)return;scrollIntoView(element,scrollView.current,{offsetTop:showDivider&&isItemContained?listPaddingTop:0,offsetBottom:isItemContained?spacing:0});// `showDivider` and `isItemContained` are not dependencies because\n// they will be the latest values when `selected` changes. And including\n// them will cause unnecessary scrolling into view.\n},[selected]);return /*#__PURE__*/_jsxs(LayoutContainer,{layoutType:layoutType,modalOptions:modalOptions,theme:theme,onKeyDown:handleKeyDown,onDismiss:onDismiss,children:[/*#__PURE__*/_jsxs(ModalContainer,{layoutType:layoutType,theme:theme,heightIsStatic:modalOptions.heightIsStatic,heightTransition:modalOptions.heightTransition,heightDeps:[results.length,showNoResults],children:[/*#__PURE__*/_jsx(Input,{autofocus:true,ref:input,onChange:setQuery,value:query,theme:theme,status:status,iconType:inputOptions.iconOptions.iconType,placeholder:inputOptions.placeholderOptions.placeholderText,clearButtonType:inputOptions?inputOptions.clearButtonType:undefined,clearButtonText:inputOptions.clearButtonText}),showDivider&&/*#__PURE__*/_jsx(Divider,{theme:theme,type:inputOptions.dividerType}),/*#__PURE__*/_jsx(ScrollView,{ref:scrollView,theme:theme,children:/*#__PURE__*/_jsxs(\"ul\",{\"aria-live\":\"polite\",style:{display:\"flex\",flexDirection:\"column\",width:`calc(100% - ${theme.scrollBarWidth}px)`,padding:0,paddingTop:listPaddingTop,paddingBottom:results.length&&isItemContained?spacing:0,gap:theme.gapBetweenResults,margin:0},children:[results.map((result,index)=>{const isSelected=index===selected.index;return /*#__PURE__*/_jsx(ResultRow,{ref:isSelected?selectedResultRow:null,index:index,result:result,prevMousePositionRef:prevMousePositionRef,selected:!isKeyboardNavigationDisabled&&isSelected,type:props.resultOptions.itemType,subtitleType:props.resultOptions.subtitleOptions.subtitleType,theme:theme,localeSlug:localeSlug,onMouseMove:handleResultRowMouseMove,onPointerDown:handleResultRowPointerDown,onNavigateTo:navigateTo},result.url);}),showNoResults&&/*#__PURE__*/_jsx(\"li\",{style:{paddingTop:verticalSpacing-listPaddingTop,paddingBottom:verticalSpacing,lineHeight:\"2em\",paddingLeft:theme&&theme.horizontalSpacing,paddingRight:theme&&theme.horizontalSpacing,height:\"Sidebar\"?\"100%\":\"auto\"},children:/*#__PURE__*/_jsx(\"h3\",{style:{...resultTitle,textAlign:\"center\",lineHeight:`calc(${theme.inputFontSize} * 2)`,color:theme.subtitleColor,...theme.titleFont},children:\"No results\"})})]})})]}),/*#__PURE__*/_jsx(StatusMessage,{status:status,layoutType:layoutType,theme:theme})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"ResultRow\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultTitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultItemType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchLayoutType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputDividerType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchTheme\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchResultSubtitleType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchModal\":{\"type\":\"reactComponent\",\"name\":\"SearchModal\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"SearchIconType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Input\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchEntryType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SearchInputClearButtonType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{useEffect,useState}from\"react\";function getViewportSize(){if(typeof window===\"undefined\"){return{width:0,height:0};}return{width:window.innerWidth,height:window.innerHeight};}export function useViewportSizeState(getState){const[state,setState]=useState(()=>getState(getViewportSize()));useEffect(()=>{const handleWindowResize=()=>setState(getState(getViewportSize()));window.addEventListener(\"resize\",handleWindowResize);return()=>{window.removeEventListener(\"resize\",handleWindowResize);};},[]);return state;}\nexport const __FramerMetadata__ = {\"exports\":{\"useViewportSizeState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useViewportSizeState.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{createPortal}from\"react-dom\";import{useRef,useState,useEffect,forwardRef}from\"react\";import{AnimatePresence,motion}from\"framer-motion\";import{SearchIcon}from\"https://framerusercontent.com/modules/LV9trClbmNwd5PVj9l8y/L4rFqMGNzGSwRZpGTGF3/Icons.js\";import{addPropertyControls,ControlType,RenderTarget,withCSS}from\"framer\";import{SearchModal,SearchResultItemType,SearchResultTitleType,SearchResultSubtitleType,SearchInputDividerType,SearchInputClearButtonType,SearchLayoutType,SearchIconType}from\"https://framerusercontent.com/modules/tV9haTHllpHHc9Fjue2H/lCNMpf6DznmmCJRndYjM/SearchModal.js\";import{useViewportSizeState}from\"https://framerusercontent.com/modules/hqEf5wXaAewP8VPuaZ98/5A0QGVeEr2cwheQpIuEG/useViewportSizeState.js\";import{titleCase,DEFAULT_FONT_FAMILY,isEmptyObject,animationKeyFromLayout,checkIfOverLimit}from\"https://framerusercontent.com/modules/MWsEnYfRnoOQq31DN4ql/fxR5MNtgeSOU8Mj4iY9n/utils.js\";import{Browser}from\"https://framerusercontent.com/modules/PJVBcBLmDteTEAZh3J9Z/keXJyjyE9VnzUcDMayjg/browser.js\";var EntryPointOptions;// SITE SEARCH\n// By Anthony and Hunter\n(function(EntryPointOptions){EntryPointOptions[\"icon\"]=\"Icon\";EntryPointOptions[\"input\"]=\"Input\";})(EntryPointOptions||(EntryPointOptions={}));function buildShadow(shadowProperty,fallback=\"none\"){if(!shadowProperty)return fallback;const{x,y,blur,color,spread}=shadowProperty;return`${x}px ${y}px ${blur}px ${spread}px ${color}`;}const Overlay=/*#__PURE__*/forwardRef(function Overlay(props,ref){const{layoutType,theme,onDismiss}=props;useEffect(()=>{const handleKeyDown=event=>{if(event.code===\"Escape\"){event.stopPropagation();onDismiss();}};const handlePointerDown=event=>{if(event.pointerType!==\"touch\")return;const isWithinSearchHeader=Boolean(event.target instanceof Element&&event.target.closest(\"[role=search]\"));if(isWithinSearchHeader)return;if(document.activeElement instanceof HTMLInputElement){document.activeElement.blur();}};// Event listener added to window so that pressing escape key to dimiss\n// can be invoked from anywhere on the page.\nwindow.addEventListener(\"keydown\",handleKeyDown);window.addEventListener(\"pointerdown\",handlePointerDown,{capture:true});// Disable page scrolling when overlay is shown.\ndocument.body.classList.add(bodyOverflowHidden);return()=>{window.removeEventListener(\"keydown\",handleKeyDown);window.removeEventListener(\"pointerdown\",handlePointerDown,{capture:true});document.body.classList.remove(bodyOverflowHidden);};},[]);return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(\"div\",{ref:ref,className:\"__framer-search-modal-container\",role:\"presentation\",style:{...backdropStyles,zIndex:props.backdropOptions.zIndex,justifyContent:layoutType===SearchLayoutType.Sidebar?\"flex-start\":\"center\"},onClick:onDismiss,children:[/*#__PURE__*/_jsx(motion.div,{role:\"presentation\",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0,transition:{duration:0}},transition:theme.overlayTransition,style:{top:0,left:0,right:0,bottom:0,width:\"100%\",height:\"100%\",boxSizing:\"border-box\",position:\"absolute\",touchAction:\"none\",backgroundColor:props.backdropOptions.backgroundColor}}),/*#__PURE__*/_jsx(SearchModal,{urlScope:props.urlScope,layoutType:layoutType,inputOptions:props.inputOptions,resultOptions:props.resultOptions,modalOptions:props.modalOptions,backdropOptions:props.backdropOptions,theme:props.theme,onDismiss:onDismiss})]}),document.body);});const backdropStyles={width:\"100%\",boxSizing:\"border-box\",willChange:\"transform\",position:\"fixed\",display:\"flex\",alignItems:\"flex-start\",top:0,left:0,right:0,bottom:0};const containerStyle={height:\"100%\",display:\"flex\",borderRadius:10,cursor:\"inherit\",overflow:\"hidden\"};const bodyOverflowHidden=\"__framer-overflow-hidden\";/**\n *\n * SEARCH\n * By Anthony and Hunter\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n *\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 40\n * @framerIntrinsicHeight 40\n */const EntryPoint=withCSS(function EntryPoint(props){const overlay=useRef(null);const[isOpen,setIsOpen]=useState(false);const[isOverLimit,setIsOverLimit]=useState(false);const[isSafariTouchDevice,setIsSafariTouchDevice]=useState(false);const[isOnCanvas]=useState(()=>RenderTarget.current()===RenderTarget.canvas);useEffect(()=>{setIsOverLimit(checkIfOverLimit());setIsSafariTouchDevice(Browser.isSafari()&&Browser.isTouch());},[]);const baseInputFontSize=props.inputOptions?.inputFont?.fontSize?props.inputOptions.inputFont.fontSize:\"16px\";// The font size is set to a minimum of `16px` on Safari with touch screens\n// because otherwise Safari will zoom in slightly if the type size is smaller.\nconst inputFontSize=isSafariTouchDevice?`max(16px, ${baseInputFontSize})`:baseInputFontSize;const layoutType=useViewportSizeState(size=>{if(size.width<props.modalOptions.width+10){return SearchLayoutType.FixedTop;}// @ts-ignore – Fallback\nreturn props.modalOptions.layoutType||props.layoutType;});const theme={subtitleColor:props.resultOptions.subtitleOptions.subtitleColor,backgroundColor:props.modalOptions.backgroundColor,foregroundColor:props.resultOptions.titleColor,placeholderColor:props.inputOptions.placeholderOptions.placeholderColor,titleFont:props.resultOptions?.titleFont&&!isEmptyObject(props.resultOptions.titleFont)?props.resultOptions.titleFont:{fontSize:14,fontFamily:DEFAULT_FONT_FAMILY,fontWeight:500},subtitleFont:props.resultOptions.subtitleOptions?.subtitleFont&&!isEmptyObject(props.resultOptions.subtitleOptions.subtitleFont)?props.resultOptions.subtitleOptions.subtitleFont:{fontSize:12,fontFamily:DEFAULT_FONT_FAMILY,fontWeight:500},inputFont:props.inputOptions?.inputFont&&!isEmptyObject(props.inputOptions.inputFont)?props.inputOptions.inputFont:{fontSize:16,fontFamily:DEFAULT_FONT_FAMILY,fontWeight:500},// Keep separate so we can more easily override\ninputFontSize:inputFontSize,width:props.modalOptions.width,offsetTop:props.modalOptions.top,borderRadius:props.modalOptions.borderRadius,shadow:buildShadow(props.modalOptions.shadow),entryIconColor:props.iconColor,entryIconSize:props.iconSize,entryIconImage:props.iconImage,inputIconSize:props.inputOptions.iconOptions.iconSize,inputIconColor:props.inputOptions.iconOptions.iconColor,inputIconImage:props.inputOptions.iconOptions.iconImage,gapBetweenStatusAndSearch:16,gapBetweenResults:1,scrollBarWidth:20,margin:10,spacing:8,zIndex:props.backdropOptions.zIndex,horizontalSpacing:20,overlayTransition:props.backdropOptions.transition};const handleClick=event=>{// Both need to keep `autofocus` working on the search input.\nevent.preventDefault();event.stopPropagation();if(isOverLimit)return;setIsOpen(true);};return /*#__PURE__*/_jsxs(\"div\",{style:{...containerStyle,...props.style,pointerEvents:isOverLimit?\"none\":\"auto\",opacity:isOverLimit?.4:1},children:[/*#__PURE__*/_jsx(\"button\",{\"aria-label\":\"Search Icon\",style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"none\",cursor:\"inherit\",color:\"inherit\",border:\"none\",borderRadius:10,padding:0},onClick:handleClick,children:props.iconType===SearchIconType.Custom&&theme.entryIconImage?/*#__PURE__*/_jsx(\"img\",{alt:\"icon entry point for Site Search\",src:theme.entryIconImage.src,width:theme.entryIconSize,height:theme.entryIconSize}):/*#__PURE__*/_jsx(SearchIcon,{color:theme.entryIconColor,width:theme.entryIconSize,height:theme.entryIconSize})}),/*#__PURE__*/_jsx(AnimatePresence,{children:isOpen&&!isOnCanvas&&/*#__PURE__*/_jsx(Overlay,{ref:overlay,layoutType:layoutType,urlScope:props.urlScope,inputOptions:props.inputOptions,resultOptions:props.resultOptions,backdropOptions:props.backdropOptions,modalOptions:props.modalOptions,theme:theme,onDismiss:()=>setIsOpen(false)})})]});},[// Prevent scrolling on iOS Safari when Input is focused.\n// From: https://gist.github.com/kiding/72721a0553fa93198ae2bb6eefaa3299\n`\n        @keyframes __framer-blink-input {\n            0% { opacity: 0; }\n            100% { opacity: 1; }\n        }\n\n        .__framer-search-modal-container input:focus {\n            animation: __framer-blink-input 0.01s;\n        }\n        `,// Allow styling of input placeholder\n`\n         .__framer-search-modal-container input::placeholder, \n         .__framer-search-modal-container input::-webkit-input-placeholder { \n            color: var(--framer-search-placeholder-color, #999999);\n            opacity: 1;\n        }\n        `,// Allow fallback to 100vh when dvh unit is not supported.\n`\n        .__framer-search-modal-container {\n            height: 100vh;\n            height: 100dvh;\n        }\n        .__framer-search-modal-container .__framer-max-height-80dvh {\n            max-height: 80vh;\n            max-height: 80dvh;\n        }\n        `,`\n        body.${bodyOverflowHidden} {\n            overflow: hidden;\n        }`,// Increase hit target\n`\n        button.__framer-search-clear-button {\n            position: relative;\n        }\n        button.__framer-search-clear-button::after {\n            content: \"\";\n            position: absolute;\n            top: -10px;\n            right: -10px;\n            bottom: -10px;\n            left: -10px;\n        }`],\"framer-lib-search\");export default EntryPoint;addPropertyControls(EntryPoint,{urlScope:{title:\"Scope\",// @ts-ignore - Internal\ntype:ControlType.PageScope},// entryType: {\n//     title: \"Type\",\n//     type: ControlType.Enum,\n//     options: Object.values(SearchEntryType),\n//     optionTitles: Object.values(SearchEntryType).map(titleCase),\n//     displaySegmentedControl: true,\n// },\niconType:{title:\"Icon\",type:ControlType.Enum,options:Object.values(SearchIconType),optionTitles:Object.values(SearchIconType).map(titleCase),displaySegmentedControl:true},iconColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"#333\",hidden:props=>props.iconType===SearchIconType.Custom},iconImage:{title:\"File\",type:ControlType.ResponsiveImage,allowedFileTypes:[\"jpg\",\"png\",\"svg\"],hidden:props=>props.iconType===SearchIconType.Default},iconSize:{title:\"Size\",type:ControlType.Number,displayStepper:true,defaultValue:24},inputOptions:{title:\"Input\",type:ControlType.Object,buttonTitle:\"Icon, Styles\",controls:{iconOptions:{title:\"Icon\",type:ControlType.Object,buttonTitle:\"Color, Size\",controls:{iconType:{title:\"Icon\",type:ControlType.Enum,options:Object.values(SearchIconType),optionTitles:Object.values(SearchIconType).map(titleCase),displaySegmentedControl:true},iconColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"rgba(0, 0, 0, 0.45)\",hidden:({iconType})=>{return iconType===SearchIconType.Custom;}},iconImage:{title:\"File\",type:ControlType.ResponsiveImage,allowedFileTypes:[\"jpg\",\"png\",\"svg\"],hidden:({iconType})=>iconType===SearchIconType.Default},iconSize:{title:\"Icon Size\",type:ControlType.Number,displayStepper:true,defaultValue:18,min:0,max:100}}},inputFont:{title:\"Font\",// @ts-ignore – Internal\ntype:ControlType.Font,displayFontSize:true},textColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"#333\"},placeholderOptions:{title:\"Placeholder\",type:ControlType.Object,buttonTitle:\"Color, Text\",controls:{placeholderText:{title:\"Text\",type:ControlType.String,defaultValue:\"Search...\"},placeholderColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"rgba(0,0,0,0.4)\"}}},dividerType:{title:\"Divider\",type:ControlType.Enum,options:Object.values(SearchInputDividerType),optionTitles:Object.keys(SearchInputDividerType).map(titleCase),defaultValue:SearchInputDividerType.FullWidth},clearButtonType:{title:\"Clear Type\",type:ControlType.Enum,options:Object.values(SearchInputClearButtonType),optionTitles:Object.keys(SearchInputClearButtonType).map(titleCase),defaultValue:SearchInputClearButtonType.Icon},clearButtonText:{title:\"Clear Text\",type:ControlType.String,defaultValue:\"Clear\",hidden:props=>props.clearButtonType!==SearchInputClearButtonType.Text}}},modalOptions:{title:\"Modal\",buttonTitle:\"Layout, Width\",type:ControlType.Object,controls:{layoutType:{title:\"Layout\",type:ControlType.Enum,options:Object.keys(SearchLayoutType),optionTitles:Object.values(SearchLayoutType).map(titleCase),defaultValue:SearchLayoutType.QuickMenu},width:{title:\"Width\",type:ControlType.Number,defaultValue:500,min:200,max:1e3,displayStepper:true,step:5,hidden:props=>props.layoutType===SearchLayoutType.FixedTop},top:{title:\"Top\",type:ControlType.Number,defaultValue:0,min:0,max:1e3,displayStepper:true,hidden:props=>props.layoutType!==SearchLayoutType.FixedTop},heightIsStatic:{title:\"Height\",type:ControlType.Boolean,enabledTitle:\"Instant\",disabledTitle:\"Animate\",hidden:({layoutType})=>layoutType!==SearchLayoutType.QuickMenu},heightTransition:{title:\"Type\",type:ControlType.Transition,defaultValue:{type:\"spring\",stiffness:800,damping:60},hidden:({heightIsStatic,layoutType})=>layoutType!==SearchLayoutType.QuickMenu||heightIsStatic},borderRadius:{title:\"Radius\",type:ControlType.Number,defaultValue:16,displayStepper:true,min:0,hidden:({layoutType})=>layoutType!==SearchLayoutType.QuickMenu},shadow:{buttonTitle:\"Options\",type:ControlType.Object,defaultValue:{x:0,y:20,blur:40,spread:0,color:\"rgba(0,0,0,0.2)\"},controls:{color:{type:ControlType.Color,defaultValue:\"rgba(0,0,0,0.2)\"},x:{type:ControlType.Number,defaultValue:0},y:{type:ControlType.Number,defaultValue:20},blur:{type:ControlType.Number,defaultValue:40},spread:{type:ControlType.Number,defaultValue:0}}},backgroundColor:{title:\"Background\",type:ControlType.Color,defaultValue:\"#FFF\"},[animationKeyFromLayout(SearchLayoutType.QuickMenu)]:{title:\"Animation\",type:ControlType.Object,icon:\"effect\",hidden:({layoutType})=>layoutType!==SearchLayoutType.QuickMenu,optional:true,buttonTitle:\"Options\",controls:{opacity:{type:ControlType.Number,defaultValue:.5,step:.1,min:0,max:1},scale:{type:ControlType.Number,defaultValue:.75,step:.1,min:0,max:2},// rotate: {\n//     type: ControlType.Number,\n//     defaultValue: 0,\n//     min: -360,\n//     max: 360,\n// },\nx:{type:ControlType.Number,defaultValue:0,min:-500,max:500},y:{type:ControlType.Number,defaultValue:0,min:-500,max:500},transition:{type:ControlType.Transition}}},[animationKeyFromLayout(SearchLayoutType.FixedTop)]:{title:\"Animation\",type:ControlType.Object,icon:\"effect\",buttonTitle:\"Options\",hidden:({layoutType})=>layoutType!==SearchLayoutType.FixedTop,optional:true,controls:{opacity:{type:ControlType.Number,defaultValue:.8,step:.1,min:0,max:1},y:{type:ControlType.Number,defaultValue:0,min:-100,max:100},transition:{type:ControlType.Transition}}},[animationKeyFromLayout(SearchLayoutType.Sidebar)]:{title:\"Animation\",type:ControlType.Object,icon:\"effect\",buttonTitle:\"Options\",hidden:({layoutType})=>layoutType!==SearchLayoutType.Sidebar,optional:true,controls:{opacity:{type:ControlType.Number,defaultValue:.8,step:.1,min:0,max:1},x:{type:ControlType.Number,defaultValue:0,min:-1e3,max:1e3},transition:{type:ControlType.Transition}}}}},resultOptions:{title:\"Results\",buttonTitle:\"Fonts, Style\",type:ControlType.Object,defaultValue:{},// description:\n//     \"Learn more about how to use Site Search [here](https://framer.com/learn/site-search)\",\ncontrols:{itemType:{title:\"Style\",type:ControlType.Enum,options:Object.values(SearchResultItemType),optionTitles:Object.keys(SearchResultItemType).map(titleCase),defaultValue:SearchResultItemType.FullWidth},titleFont:{title:\"Title\",// @ts-ignore - Internal\ntype:ControlType.Font,defaultValue:{fontSize:15},displayFontSize:true},titleColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"#333\"},titleType:{title:\"Content\",type:ControlType.Enum,options:Object.values(SearchResultTitleType),optionTitles:Object.keys(SearchResultTitleType).map(titleCase),defaultValue:SearchResultTitleType.H1,displaySegmentedControl:true},subtitleOptions:{type:ControlType.Object,title:\"Subtitle\",buttonTitle:\"Font, Content\",controls:{subtitleFont:{title:\"Font\",// @ts-ignore - Internal\ntype:ControlType.Font,defaultValue:{fontSize:13},displayFontSize:true},subtitleColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"rgba(0, 0, 0, 0.4)\"},subtitleType:{title:\"Content\",type:ControlType.Enum,options:Object.values(SearchResultSubtitleType),optionTitles:Object.keys(SearchResultSubtitleType).map(titleCase),defaultValue:SearchResultSubtitleType.Path}}}}},backdropOptions:{title:\"Backdrop\",type:ControlType.Object,buttonTitle:\"Color, Z Index\",controls:{backgroundColor:{title:\"Color\",type:ControlType.Color,defaultValue:\"rgba(0, 0, 0, 0.8)\"},zIndex:{title:\"Z Index\",type:ControlType.Number,defaultValue:10,displayStepper:true,min:0,max:10},transition:{type:ControlType.Transition}}}});EntryPoint.displayName=\"Search\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"EntryPoint\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"40\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"*\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"40\"}},\"ResponsiveImage\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Shadow\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EntryPointProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"WindowAnimation\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (9e04080)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Link,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const enabledGestures={zPuCnpVep:{hover:true}};const serializationHash=\"framer-lnRNn\";const variantClassNames={zPuCnpVep:\"framer-v-phn55z\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:400,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,link,newTab,tap,title,width,...props})=>{return{...props,C_0i5Cn_A:newTab??props.C_0i5Cn_A??true,RTZJRh3Xi:link??props.RTZJRh3Xi,Vpc2QumxM:tap??props.Vpc2QumxM,xdx3z8nWJ:title??props.xdx3z8nWJ??\"menu\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,RTZJRh3Xi,C_0i5Cn_A,Vpc2QumxM,xdx3z8nWJ,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"zPuCnpVep\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap1cnpv5s=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(Vpc2QumxM){const res=await Vpc2QumxM(...args);if(res===false)return false;}});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(gestureVariant===\"zPuCnpVep-hover\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:RTZJRh3Xi,motionChild:true,nodeId:\"zPuCnpVep\",openInNewTab:C_0i5Cn_A,scopeId:\"RqjgT_SF7\",children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-phn55z\",className,classNames)} framer-s6tpth`,\"data-framer-name\":\"Menu\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"zPuCnpVep\",onTap:onTap1cnpv5s,ref:refBinding,style:{backgroundColor:\"var(--token-4ef6a81e-bbba-47f6-b328-62e51365a036, rgb(255, 255, 255))\",...style},...addPropertyOverrides({\"zPuCnpVep-hover\":{\"data-framer-name\":undefined}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO0VEIE5pbXBraXNoIFJlZ3VsYXI=\",\"--framer-font-family\":'\"ED Nimpkish Regular\", \"ED Nimpkish Regular Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-letter-spacing\":\"0px\",\"--framer-line-height\":\"13px\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(20, 20, 20))\",\"--framer-text-transform\":\"lowercase\"},children:\"menu\"})}),className:\"framer-1jhzsim\",\"data-framer-name\":\"Text\",fonts:[\"CUSTOM;ED Nimpkish Regular\"],layoutDependency:layoutDependency,layoutId:\"kKHcsdMkR\",style:{\"--extracted-r6o4lv\":\"rgb(20, 20, 20)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:xdx3z8nWJ,verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1kn55pz\",\"data-framer-name\":\"BG Hover\",layoutDependency:layoutDependency,layoutId:\"r7rnI6w94\",style:{backgroundColor:\"var(--token-4eb59346-11e3-41b7-a0f3-7b7469b636ff, rgb(0, 153, 255))\"},children:isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{children:/*#__PURE__*/_jsx(motion.br,{className:\"trailing-break\"})})}),className:\"framer-s67my7\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"ydx_FCvFJ\",verticalAlignment:\"top\",withExternalLayout:true})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-lnRNn.framer-s6tpth, .framer-lnRNn .framer-s6tpth { display: block; }\",\".framer-lnRNn.framer-phn55z { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 12px; height: min-content; justify-content: center; overflow: hidden; padding: 8px 10px 8px 10px; position: relative; text-decoration: none; width: min-content; }\",\".framer-lnRNn .framer-1jhzsim { flex: none; height: auto; position: relative; white-space: pre; width: auto; z-index: 1; }\",\".framer-lnRNn .framer-1kn55pz { align-content: center; align-items: center; bottom: 0px; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; justify-content: center; left: -8px; overflow: hidden; padding: 0px; position: absolute; top: 0px; width: 8px; }\",\".framer-lnRNn .framer-s67my7 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-lnRNn.framer-v-phn55z.hover .framer-1kn55pz { right: -8px; width: unset; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 29\n * @framerIntrinsicWidth 51.5\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"VK6ugUqN0\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"RTZJRh3Xi\":\"link\",\"C_0i5Cn_A\":\"newTab\",\"Vpc2QumxM\":\"tap\",\"xdx3z8nWJ\":\"title\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerRqjgT_SF7=withCSS(Component,css,\"framer-lnRNn\");export default FramerRqjgT_SF7;FramerRqjgT_SF7.displayName=\"Menu Button\";FramerRqjgT_SF7.defaultProps={height:29,width:51.5};addPropertyControls(FramerRqjgT_SF7,{RTZJRh3Xi:{title:\"Link\",type:ControlType.Link},C_0i5Cn_A:{defaultValue:true,title:\"New Tab\",type:ControlType.Boolean},Vpc2QumxM:{title:\"Tap\",type:ControlType.EventHandler},xdx3z8nWJ:{defaultValue:\"menu\",displayTextArea:false,title:\"Title\",type:ControlType.String}});addFonts(FramerRqjgT_SF7,[{explicitInter:true,fonts:[{family:\"ED Nimpkish Regular\",source:\"custom\",url:\"https://framerusercontent.com/assets/dQ7fCyOLAN3PTI9GChCFKAwFs.woff2\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerRqjgT_SF7\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"29\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerColorSyntax\":\"true\",\"framerIntrinsicWidth\":\"51.5\",\"framerAutoSizeImages\":\"true\",\"framerVariables\":\"{\\\"RTZJRh3Xi\\\":\\\"link\\\",\\\"C_0i5Cn_A\\\":\\\"newTab\\\",\\\"Vpc2QumxM\\\":\\\"tap\\\",\\\"xdx3z8nWJ\\\":\\\"title\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"VK6ugUqN0\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RqjgT_SF7.map","// Generated by Framer (af253fe)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getLoadingLazyAtYPosition,Image,Link,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Search from\"https://framerusercontent.com/modules/6wAE2eMb2Tl3zrU7u4UL/mKj6QS2p4Cgdaa0WrZKY/Search.js\";import MenuButton from\"https://framerusercontent.com/modules/rWrhmhqyfHdWhmGtf2CJ/bo7x4nDwZibbVBQ5fz3p/RqjgT_SF7.js\";const SearchFonts=getFonts(Search);const MenuButtonFonts=getFonts(MenuButton);const MotionNavWithFX=withFX(motion.nav);const cycleOrder=[\"AvJ79ZuUd\",\"yJ1SCjfA3\",\"YOwlFiUpc\",\"izqHEc_Tf\"];const serializationHash=\"framer-EEp6T\";const variantClassNames={AvJ79ZuUd:\"framer-v-tlobif\",izqHEc_Tf:\"framer-v-17qr37z\",yJ1SCjfA3:\"framer-v-103du2d\",YOwlFiUpc:\"framer-v-u0ern1\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const LlGjrvFdC=undefined;const transition1={damping:35,delay:0,mass:1,stiffness:400,type:\"spring\"};const animation={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transformPerspective:1200,x:0,y:-64};const transition2={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Desktop Primary\":\"AvJ79ZuUd\",\"Desktop Secondary\":\"YOwlFiUpc\",\"Mobile Primary\":\"yJ1SCjfA3\",\"Mobile Secondary\":\"izqHEc_Tf\"};const getProps=({height,id,tap,width,...props})=>{return{...props,LlGjrvFdC:tap??props.LlGjrvFdC,variant:humanReadableVariantMap[props.variant]??props.variant??\"AvJ79ZuUd\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,LlGjrvFdC,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"AvJ79ZuUd\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const Vpc2QumxM3o4osd=activeVariantCallback(async(...args)=>{if(LlGjrvFdC){const res=await LlGjrvFdC(...args);if(res===false)return false;}});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"yJ1SCjfA3\",\"izqHEc_Tf\"].includes(baseVariant))return false;return true;};const isDisplayed1=()=>{if(baseVariant===\"YOwlFiUpc\")return false;return true;};const isDisplayed2=()=>{if(baseVariant===\"YOwlFiUpc\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition2,children:/*#__PURE__*/_jsx(MotionNavWithFX,{...restProps,...gestureHandlers,__framer__animate:{transition:transition1},__framer__animateOnce:false,__framer__scrollDirection:{direction:\"down\",target:animation},__framer__styleAppearEffectEnabled:true,__framer__threshold:.5,__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,className:cx(scopingClassNames,\"framer-tlobif\",className,classNames),\"data-framer-name\":\"Desktop Primary\",layoutDependency:layoutDependency,layoutId:\"AvJ79ZuUd\",ref:refBinding,style:{...style},...addPropertyOverrides({izqHEc_Tf:{\"data-framer-name\":\"Mobile Secondary\"},yJ1SCjfA3:{\"data-framer-name\":\"Mobile Primary\"},YOwlFiUpc:{\"data-framer-name\":\"Desktop Secondary\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1m4tz19\",\"data-framer-name\":\"Nav Menu\",layoutDependency:layoutDependency,layoutId:\"yrrYmeACi\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-nbpf5z\",\"data-framer-name\":\"Top\",layoutDependency:layoutDependency,layoutId:\"LqqdZYc5q\",children:/*#__PURE__*/_jsx(Link,{href:{hash:\":DxtLJ5W1j\",webPageId:\"pyQ74JKGa\"},motionChild:true,nodeId:\"NvMon9IuB\",openInNewTab:false,scopeId:\"RCnaNQOyx\",children:/*#__PURE__*/_jsx(Image,{as:\"a\",background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+34+(((componentViewport?.height||118)-68-50)/2+0+0)+5+0),pixelHeight:1573,pixelWidth:1573,sizes:\"40px\",src:\"https://framerusercontent.com/images/eUcZiqUv7JSaeVGM7Qs71yaCKs8.png?width=1573&height=1573\",srcSet:\"https://framerusercontent.com/images/eUcZiqUv7JSaeVGM7Qs71yaCKs8.png?scale-down-to=512&width=1573&height=1573 512w,https://framerusercontent.com/images/eUcZiqUv7JSaeVGM7Qs71yaCKs8.png?scale-down-to=1024&width=1573&height=1573 1024w,https://framerusercontent.com/images/eUcZiqUv7JSaeVGM7Qs71yaCKs8.png?width=1573&height=1573 1573w\"},className:\"framer-1mjp1rb framer-nzr4ie\",\"data-framer-name\":\"Icon\",layoutDependency:layoutDependency,layoutId:\"NvMon9IuB\",...addPropertyOverrides({izqHEc_Tf:{background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+34+(((componentViewport?.height||200)-68-50)/2+0+0)+5+0),pixelHeight:1573,pixelWidth:1573,sizes:\"40px\",src:\"https://framerusercontent.com/images/eUcZiqUv7JSaeVGM7Qs71yaCKs8.png?width=1573&height=1573\",srcSet:\"https://framerusercontent.com/images/eUcZiqUv7JSaeVGM7Qs71yaCKs8.png?scale-down-to=512&width=1573&height=1573 512w,https://framerusercontent.com/images/eUcZiqUv7JSaeVGM7Qs71yaCKs8.png?scale-down-to=1024&width=1573&height=1573 1024w,https://framerusercontent.com/images/eUcZiqUv7JSaeVGM7Qs71yaCKs8.png?width=1573&height=1573 1573w\"}},yJ1SCjfA3:{background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+34+(((componentViewport?.height||118)-68-50)/2+0+0)+5+0),pixelHeight:1332,pixelWidth:2372,sizes:\"71.2312px\",src:\"https://framerusercontent.com/images/6bbRmqWsvf33P8vKx3qzkWZMOnI.png?width=2372&height=1332\",srcSet:\"https://framerusercontent.com/images/6bbRmqWsvf33P8vKx3qzkWZMOnI.png?scale-down-to=512&width=2372&height=1332 512w,https://framerusercontent.com/images/6bbRmqWsvf33P8vKx3qzkWZMOnI.png?scale-down-to=1024&width=2372&height=1332 1024w,https://framerusercontent.com/images/6bbRmqWsvf33P8vKx3qzkWZMOnI.png?scale-down-to=2048&width=2372&height=1332 2048w,https://framerusercontent.com/images/6bbRmqWsvf33P8vKx3qzkWZMOnI.png?width=2372&height=1332 2372w\"},fitImageDimension:\"width\"},YOwlFiUpc:{background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+34+(((componentViewport?.height||200)-68-50)/2+0+0)+5+0),pixelHeight:1573,pixelWidth:1573,sizes:\"40px\",src:\"https://framerusercontent.com/images/eUcZiqUv7JSaeVGM7Qs71yaCKs8.png?width=1573&height=1573\",srcSet:\"https://framerusercontent.com/images/eUcZiqUv7JSaeVGM7Qs71yaCKs8.png?scale-down-to=512&width=1573&height=1573 512w,https://framerusercontent.com/images/eUcZiqUv7JSaeVGM7Qs71yaCKs8.png?scale-down-to=1024&width=1573&height=1573 1024w,https://framerusercontent.com/images/eUcZiqUv7JSaeVGM7Qs71yaCKs8.png?width=1573&height=1573 1573w\"}}},baseVariant,gestureVariant)})})}),isDisplayed()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1cnxkgr\",\"data-framer-name\":\"Time & Toggle Switch\",layoutDependency:layoutDependency,layoutId:\"kIWGRQXvC\"}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-2lpfyt\",\"data-framer-name\":\"Menu Button\",layoutDependency:layoutDependency,layoutId:\"Z9DV7VCdD\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-i0suy5-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"rQESl6FFG-container\",nodeId:\"rQESl6FFG\",rendersWithMotion:true,scopeId:\"RCnaNQOyx\",children:/*#__PURE__*/_jsx(Search,{backdropOptions:{backgroundColor:\"rgba(0, 0, 0, 0.8)\",transition:{damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"},zIndex:10},height:\"100%\",iconColor:\"rgb(255, 255, 255)\",iconSize:26,iconType:\"default\",id:\"rQESl6FFG\",inputOptions:{clearButtonText:\"Clear\",clearButtonType:\"icon\",dividerType:\"fullWidth\",iconOptions:{iconColor:\"rgba(0, 0, 0, 0.45)\",iconSize:18,iconType:\"default\"},inputFont:{},placeholderOptions:{placeholderColor:\"rgba(0, 0, 0, 0.4)\",placeholderText:\"Search...\"},textColor:\"rgb(51, 51, 51)\"},layoutId:\"rQESl6FFG\",modalOptions:{backgroundColor:\"rgb(255, 255, 255)\",borderRadius:16,heightIsStatic:true,heightTransition:{damping:60,delay:0,mass:1,stiffness:800,type:\"spring\"},layoutType:\"QuickMenu\",shadow:{blur:40,color:\"rgba(0, 0, 0, 0.2)\",spread:0,x:0,y:20},top:0,width:500},resultOptions:{itemType:\"fullWidth\",subtitleOptions:{subtitleColor:\"rgba(0, 0, 0, 0.4)\",subtitleFont:{},subtitleType:\"path\"},titleColor:\"rgb(51, 51, 51)\",titleFont:{},titleType:\"h1\"},style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})}),isDisplayed1()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{height:29,width:\"59px\",y:(componentViewport?.y||0)+34+(((componentViewport?.height||118)-68-50)/2+0+0)+0+10.5,...addPropertyOverrides({izqHEc_Tf:{y:(componentViewport?.y||0)+34+(((componentViewport?.height||200)-68-50)/2+0+0)+0+10.5}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1tjbr9x-container\",layoutDependency:layoutDependency,layoutId:\"JrilWvtRT-container\",nodeId:\"JrilWvtRT\",rendersWithMotion:true,scopeId:\"RCnaNQOyx\",children:/*#__PURE__*/_jsx(MenuButton,{C_0i5Cn_A:true,height:\"100%\",id:\"JrilWvtRT\",layoutId:\"JrilWvtRT\",style:{width:\"100%\"},Vpc2QumxM:Vpc2QumxM3o4osd,width:\"100%\",xdx3z8nWJ:\"menu\",...addPropertyOverrides({izqHEc_Tf:{RTZJRh3Xi:\"https://westhillstudio.lemonsqueezy.com/\",xdx3z8nWJ:\"Store\"}},baseVariant,gestureVariant)})})}),isDisplayed2()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{...addPropertyOverrides({YOwlFiUpc:{height:29,width:\"59px\",y:(componentViewport?.y||0)+34+(((componentViewport?.height||200)-68-50)/2+0+0)+0+10.5}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1cl4vq0-container\",layoutDependency:layoutDependency,layoutId:\"iLeBqg5s3-container\",nodeId:\"iLeBqg5s3\",rendersWithMotion:true,scopeId:\"RCnaNQOyx\",children:/*#__PURE__*/_jsx(MenuButton,{C_0i5Cn_A:true,height:\"100%\",id:\"iLeBqg5s3\",layoutId:\"iLeBqg5s3\",style:{width:\"100%\"},Vpc2QumxM:Vpc2QumxM3o4osd,width:\"100%\",xdx3z8nWJ:\"menu\"})})})]})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-EEp6T.framer-nzr4ie, .framer-EEp6T .framer-nzr4ie { display: block; }\",\".framer-EEp6T.framer-tlobif { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 33px; height: min-content; justify-content: center; mix-blend-mode: difference; overflow: hidden; padding: 34px 0px 34px 0px; position: relative; width: 1440px; }\",\".framer-EEp6T .framer-1m4tz19 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: 50px; justify-content: space-between; overflow: hidden; padding: 0px 40px 0px 40px; position: relative; width: 100%; }\",\".framer-EEp6T .framer-nbpf5z { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-EEp6T .framer-1mjp1rb { flex: none; height: 40px; overflow: hidden; position: relative; text-decoration: none; width: 40px; will-change: var(--framer-will-change-filter-override, filter); }\",\".framer-EEp6T .framer-1cnxkgr { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: 100%; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; width: 1px; }\",\".framer-EEp6T .framer-2lpfyt { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-end; overflow: hidden; padding: 0px; position: relative; width: 115px; }\",\".framer-EEp6T .framer-i0suy5-container { cursor: pointer; flex: none; height: 50px; position: relative; width: 50px; }\",\".framer-EEp6T .framer-1tjbr9x-container, .framer-EEp6T .framer-1cl4vq0-container { flex: none; height: auto; position: relative; width: 59px; }\",\".framer-EEp6T.framer-v-103du2d.framer-tlobif { align-content: center; align-items: center; width: 390px; }\",\".framer-EEp6T.framer-v-103du2d .framer-1m4tz19 { gap: 10px; justify-content: center; padding: 0px 20px 0px 20px; }\",\".framer-EEp6T.framer-v-103du2d .framer-nbpf5z { justify-content: center; }\",\".framer-EEp6T.framer-v-103du2d .framer-1mjp1rb { width: auto; }\",\".framer-EEp6T.framer-v-103du2d .framer-2lpfyt { justify-content: center; width: min-content; }\",\".framer-EEp6T.framer-v-u0ern1 .framer-1cnxkgr { gap: 20px; }\",\".framer-EEp6T.framer-v-u0ern1 .framer-i0suy5-container { order: 0; }\",\".framer-EEp6T.framer-v-u0ern1 .framer-1cl4vq0-container { order: 1; }\",\".framer-EEp6T.framer-v-17qr37z.framer-tlobif, .framer-EEp6T.framer-v-17qr37z .framer-2lpfyt { width: min-content; }\",\".framer-EEp6T.framer-v-17qr37z .framer-1m4tz19 { padding: 0px 20px 0px 20px; width: 390px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 118\n * @framerIntrinsicWidth 1440\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"yJ1SCjfA3\":{\"layout\":[\"fixed\",\"auto\"]},\"YOwlFiUpc\":{\"layout\":[\"fixed\",\"auto\"]},\"izqHEc_Tf\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"LlGjrvFdC\":\"tap\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerRCnaNQOyx=withCSS(Component,css,\"framer-EEp6T\");export default FramerRCnaNQOyx;FramerRCnaNQOyx.displayName=\"Navigation Bar\";FramerRCnaNQOyx.defaultProps={height:118,width:1440};addPropertyControls(FramerRCnaNQOyx,{variant:{options:[\"AvJ79ZuUd\",\"yJ1SCjfA3\",\"YOwlFiUpc\",\"izqHEc_Tf\"],optionTitles:[\"Desktop Primary\",\"Mobile Primary\",\"Desktop Secondary\",\"Mobile Secondary\"],title:\"Variant\",type:ControlType.Enum},LlGjrvFdC:{title:\"Tap\",type:ControlType.EventHandler}});addFonts(FramerRCnaNQOyx,[{explicitInter:true,fonts:[]},...SearchFonts,...MenuButtonFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerRCnaNQOyx\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"1440\",\"framerVariables\":\"{\\\"LlGjrvFdC\\\":\\\"tap\\\"}\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"yJ1SCjfA3\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"YOwlFiUpc\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"izqHEc_Tf\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"118\",\"framerColorSyntax\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RCnaNQOyx.map","import{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Roboto Mono-regular\",\"GF;Roboto Mono-700\",\"GF;Roboto Mono-700italic\",\"GF;Roboto Mono-italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Roboto Mono\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/robotomono/v23/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vqPRu-5Ip2sSQ.woff2\",weight:\"400\"},{family:\"Roboto Mono\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/robotomono/v23/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_Of2PRu-5Ip2sSQ.woff2\",weight:\"700\"},{family:\"Roboto Mono\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrmAB-W4AJi8SZwt.woff2\",weight:\"700\"},{family:\"Roboto Mono\",source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAOW4AJi8SZwt.woff2\",weight:\"400\"}]}];export const css=['.framer-vt7Kw .framer-styles-preset-okz6po:not(.rich-text-wrapper), .framer-vt7Kw .framer-styles-preset-okz6po.rich-text-wrapper p { --framer-font-family: \"Roboto Mono\", monospace; --framer-font-family-bold: \"Roboto Mono\", monospace; --framer-font-family-bold-italic: \"Roboto Mono\", monospace; --framer-font-family-italic: \"Roboto Mono\", monospace; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 20px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-4ef6a81e-bbba-47f6-b328-62e51365a036, #1d1d1f); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; }'];export const className=\"framer-vt7Kw\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (838580a)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/rS4Gk6IgtsG9ZsnA5Gcu/ttAiTpoHllKtnKRMA5jP/Z9F3QRATy.js\";const enabledGestures={UZW2WsGug:{hover:true}};const cycleOrder=[\"UZW2WsGug\"];const serializationHash=\"framer-jsl5v\";const variantClassNames={UZW2WsGug:\"framer-v-rbf69j\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion(React.Fragment);const getProps=({height,id,text,width,...props})=>{var _ref;return{...props,EHwggOTIz:(_ref=text!==null&&text!==void 0?text:props.EHwggOTIz)!==null&&_ref!==void 0?_ref:\"Text\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,EHwggOTIz,...restProps}=getProps(props);const{baseVariant,classNames,gestureHandlers,gestureVariant,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"UZW2WsGug\",enabledGestures,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const ref1=React.useRef(null);const defaultLayoutId=React.useId();const sharedStyleClassNames=[sharedStyle.className];const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(serializationHash,...sharedStyleClassNames,\"framer-rbf69j\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"UZW2WsGug\",ref:ref!==null&&ref!==void 0?ref:ref1,style:{...style},...addPropertyOverrides({\"UZW2WsGug-hover\":{\"data-framer-name\":undefined}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-pu98sg\",\"data-framer-name\":\"Text\",layoutDependency:layoutDependency,layoutId:\"e5EPFU5xW\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-okz6po\",\"data-styles-preset\":\"Z9F3QRATy\",children:\"Text\"})}),className:\"framer-iix0c4\",\"data-framer-name\":\"Link\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"OZYoKMkDE\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:EHwggOTIz,verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-kzlo0c\",\"data-framer-name\":\"Line\",layoutDependency:layoutDependency,layoutId:\"xEK5tN_Ny\",style:{backgroundColor:\"var(--token-4ef6a81e-bbba-47f6-b328-62e51365a036, rgb(29, 29, 31))\"}})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-jsl5v.framer-5kboeq, .framer-jsl5v .framer-5kboeq { display: block; }\",\".framer-jsl5v.framer-rbf69j { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 30px; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-jsl5v .framer-pu98sg { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: 100%; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: min-content; }\",\".framer-jsl5v .framer-iix0c4 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-jsl5v .framer-kzlo0c { bottom: 14px; flex: none; height: 1px; left: -1px; overflow: hidden; position: absolute; width: 1px; z-index: 1; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-jsl5v.framer-rbf69j, .framer-jsl5v .framer-pu98sg { gap: 0px; } .framer-jsl5v.framer-rbf69j > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-jsl5v.framer-rbf69j > :first-child { margin-left: 0px; } .framer-jsl5v.framer-rbf69j > :last-child { margin-right: 0px; } .framer-jsl5v .framer-pu98sg > * { margin: 0px; margin-bottom: calc(0px / 2); margin-top: calc(0px / 2); } .framer-jsl5v .framer-pu98sg > :first-child { margin-top: 0px; } .framer-jsl5v .framer-pu98sg > :last-child { margin-bottom: 0px; } }\",\".framer-jsl5v.framer-v-rbf69j.hover .framer-kzlo0c { left: 0px; width: 100%; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 30\n * @framerIntrinsicWidth 43\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"fixed\"]},\"Q2bLC_S45\":{\"layout\":[\"auto\",\"fixed\"]}}}\n * @framerVariables {\"EHwggOTIz\":\"text\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerZ5xwzpHRd=withCSS(Component,css,\"framer-jsl5v\");export default FramerZ5xwzpHRd;FramerZ5xwzpHRd.displayName=\"Crossline Animation\";FramerZ5xwzpHRd.defaultProps={height:30,width:43};addPropertyControls(FramerZ5xwzpHRd,{EHwggOTIz:{defaultValue:\"Text\",displayTextArea:false,title:\"Text\",type:ControlType.String}});addFonts(FramerZ5xwzpHRd,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-Regular.cyrillic-ext-CFTLRB35.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-Regular.cyrillic-KKLZBALH.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-Regular.greek-ext-ULEBLIFV.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-Regular.greek-IRHSNFQB.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-Regular.latin-ext-VZDUGU3Q.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-Regular.latin-JLQMKCHE.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-Regular.vietnamese-QK7VSWXK.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerZ5xwzpHRd\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerVariables\":\"{\\\"EHwggOTIz\\\":\\\"text\\\"}\",\"framerIntrinsicWidth\":\"43\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"Q2bLC_S45\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicHeight\":\"30\",\"framerImmutableVariables\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Z5xwzpHRd.map","// Generated by Framer (beb597f)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,Link,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import CrosslineAnimation from\"https://framerusercontent.com/modules/4o9FLNqatRjNWvyK8Yzn/GwhvlIW2HRGCw6ROf8ep/Z5xwzpHRd.js\";const CrosslineAnimationFonts=getFonts(CrosslineAnimation);const cycleOrder=[\"cJsuhy05P\",\"KA6ilXxrI\",\"dX1Vi4MZ0\"];const serializationHash=\"framer-rCab6\";const variantClassNames={cJsuhy05P:\"framer-v-1yr4fif\",dX1Vi4MZ0:\"framer-v-q8b39o\",KA6ilXxrI:\"framer-v-12yo0a\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const V4AKsldnT=undefined;const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Primary Desktop\":\"cJsuhy05P\",\"Secondary Desktop\":\"dX1Vi4MZ0\",Mobile:\"KA6ilXxrI\"};const getProps=({height,id,link,width,...props})=>{return{...props,V4AKsldnT:link??props.V4AKsldnT,variant:humanReadableVariantMap[props.variant]??props.variant??\"cJsuhy05P\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,V4AKsldnT,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"cJsuhy05P\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"dX1Vi4MZ0\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.footer,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1yr4fif\",className,classNames),\"data-framer-name\":\"Primary Desktop\",layoutDependency:layoutDependency,layoutId:\"cJsuhy05P\",ref:refBinding,style:{...style},...addPropertyOverrides({dX1Vi4MZ0:{\"data-framer-name\":\"Secondary Desktop\"},KA6ilXxrI:{\"data-framer-name\":\"Mobile\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-z3xix9\",\"data-framer-name\":\"Text\",layoutDependency:layoutDependency,layoutId:\"tmFtSNcF1\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-cwa2v8\",\"data-framer-name\":\"Left\",layoutDependency:layoutDependency,layoutId:\"tf1lAh4lE\",children:/*#__PURE__*/_jsx(Link,{href:\"https://x.com/MandroDesign\",motionChild:true,nodeId:\"NcvTy9jcL\",openInNewTab:true,scopeId:\"XK_Cy5AdA\",smoothScroll:true,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-1l9bcig framer-1kq6agr\",\"data-framer-name\":\"Link\",layoutDependency:layoutDependency,layoutId:\"NcvTy9jcL\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:30,y:(componentViewport?.y||0)+20+(((componentViewport?.height||80)-50-30)/2+0+0)+0+0+0,...addPropertyOverrides({dX1Vi4MZ0:{y:(componentViewport?.y||0)+20+(((componentViewport?.height||200)-50-79)/2+1+48)+0+0+0},KA6ilXxrI:{y:(componentViewport?.y||0)+20+(((componentViewport?.height||126)-46-80)/2+0+0)+0+0+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-10j18i1-container\",layoutDependency:layoutDependency,layoutId:\"YbRJElVuy-container\",nodeId:\"YbRJElVuy\",rendersWithMotion:true,scopeId:\"XK_Cy5AdA\",children:/*#__PURE__*/_jsx(CrosslineAnimation,{EHwggOTIz:\"\\xa92026 MIA BAWALE\",height:\"100%\",id:\"YbRJElVuy\",layoutId:\"YbRJElVuy\",style:{height:\"100%\"},width:\"100%\"})})})})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-sg0itl\",\"data-framer-name\":\"Right\",layoutDependency:layoutDependency,layoutId:\"XMgSUWOiC\",children:/*#__PURE__*/_jsx(Link,{href:V4AKsldnT,motionChild:true,nodeId:\"LHog2ruSR\",openInNewTab:false,scopeId:\"XK_Cy5AdA\",smoothScroll:true,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-195hxhu framer-1kq6agr\",\"data-framer-name\":\"Link\",layoutDependency:layoutDependency,layoutId:\"LHog2ruSR\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:30,y:(componentViewport?.y||0)+20+(((componentViewport?.height||80)-50-30)/2+0+0)+0+0+0,...addPropertyOverrides({dX1Vi4MZ0:{y:(componentViewport?.y||0)+20+(((componentViewport?.height||200)-50-79)/2+1+48)+0+0+0},KA6ilXxrI:{y:(componentViewport?.y||0)+20+(((componentViewport?.height||126)-46-80)/2+0+0)+0+50+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1fgmsvx-container\",layoutDependency:layoutDependency,layoutId:\"meqdIG7Kp-container\",nodeId:\"meqdIG7Kp\",rendersWithMotion:true,scopeId:\"XK_Cy5AdA\",children:/*#__PURE__*/_jsx(CrosslineAnimation,{EHwggOTIz:\"Go Back To Top\",height:\"100%\",id:\"meqdIG7Kp\",layoutId:\"meqdIG7Kp\",style:{height:\"100%\"},width:\"100%\"})})})})})})]}),isDisplayed()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-7qz68g\",\"data-framer-name\":\"Top\",layoutDependency:layoutDependency,layoutId:\"cpHCMYELx\"}),isDisplayed()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1kvxpjk\",\"data-framer-name\":\"Line\",layoutDependency:layoutDependency,layoutId:\"QzX8XuO84\",style:{backgroundColor:\"var(--token-f3f20fef-30a0-43b4-9947-20f4d64f735a, rgb(220, 220, 220))\"}})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-rCab6.framer-1kq6agr, .framer-rCab6 .framer-1kq6agr { display: block; }\",\".framer-rCab6.framer-1yr4fif { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 80px; height: min-content; justify-content: center; overflow: visible; padding: 20px 40px 30px 40px; position: relative; width: 1440px; }\",\".framer-rCab6 .framer-z3xix9 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: visible; padding: 0px; position: relative; width: 100%; z-index: 1; }\",\".framer-rCab6 .framer-cwa2v8 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 286px; }\",\".framer-rCab6 .framer-1l9bcig, .framer-rCab6 .framer-195hxhu { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-rCab6 .framer-10j18i1-container, .framer-rCab6 .framer-1fgmsvx-container { flex: none; height: 30px; position: relative; width: auto; }\",\".framer-rCab6 .framer-sg0itl { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 265px; }\",\".framer-rCab6 .framer-7qz68g { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-end; min-height: 30px; overflow: hidden; padding: 0px 40px 0px 40px; position: relative; width: 100%; }\",\".framer-rCab6 .framer-1kvxpjk { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 1px; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 100%; }\",\".framer-rCab6.framer-v-12yo0a.framer-1yr4fif { padding: 20px 40px 26px 40px; width: 390px; }\",\".framer-rCab6.framer-v-12yo0a .framer-z3xix9 { flex-direction: column; gap: 20px; justify-content: flex-start; }\",\".framer-rCab6.framer-v-q8b39o.framer-1yr4fif { gap: 24px; padding: 20px 0px 30px 0px; }\",\".framer-rCab6.framer-v-q8b39o .framer-z3xix9 { order: 2; padding: 0px 40px 0px 40px; }\",\".framer-rCab6.framer-v-q8b39o .framer-7qz68g { order: 0; }\",\".framer-rCab6.framer-v-q8b39o .framer-1kvxpjk { order: 1; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 80\n * @framerIntrinsicWidth 1440\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"KA6ilXxrI\":{\"layout\":[\"fixed\",\"auto\"]},\"dX1Vi4MZ0\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"V4AKsldnT\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerXK_Cy5AdA=withCSS(Component,css,\"framer-rCab6\");export default FramerXK_Cy5AdA;FramerXK_Cy5AdA.displayName=\"Footer\";FramerXK_Cy5AdA.defaultProps={height:80,width:1440};addPropertyControls(FramerXK_Cy5AdA,{variant:{options:[\"cJsuhy05P\",\"KA6ilXxrI\",\"dX1Vi4MZ0\"],optionTitles:[\"Primary Desktop\",\"Mobile\",\"Secondary Desktop\"],title:\"Variant\",type:ControlType.Enum},V4AKsldnT:{title:\"Link\",type:ControlType.Link}});addFonts(FramerXK_Cy5AdA,[{explicitInter:true,fonts:[]},...CrosslineAnimationFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerXK_Cy5AdA\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"80\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"KA6ilXxrI\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"dX1Vi4MZ0\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"1440\",\"framerColorSyntax\":\"true\",\"framerVariables\":\"{\\\"V4AKsldnT\\\":\\\"link\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./XK_Cy5AdA.map"],"mappings":"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"}