rivet-design 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/services/CSSTokenWriter.js +1 -1
- package/dist/services/CommentVariationService.js +1 -1
- package/dist/services/TailwindConfigWriter.js +1 -1
- package/dist/services/agent/AgentCore.d.ts +1 -1
- package/dist/services/agent/AgentCore.js +1 -1
- package/dist/services/agent/AgentModService.d.ts +1 -1
- package/dist/services/agent/AgentModService.js +1 -1
- package/package.json +1 -1
- package/src/ui/dist/assets/main-BHd_bEP8.css +1 -0
- package/src/ui/dist/assets/{main-BxYkrTpy.js → main-C7zScMx3.js} +5 -5
- package/src/ui/dist/index.html +2 -2
- package/src/ui/dist/assets/main-BxL1kNtz.css +0 -1
|
@@ -14,8 +14,8 @@ var Cx=Object.defineProperty;var Sx=($,Cr,kr)=>Cr in $?Cx($,Cr,{enumerable:!0,co
|
|
|
14
14
|
*
|
|
15
15
|
* This source code is licensed under the MIT license found in the
|
|
16
16
|
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/var hasRequiredReactJsxRuntime_production_min;function requireReactJsxRuntime_production_min(){if(hasRequiredReactJsxRuntime_production_min)return reactJsxRuntime_production_min;hasRequiredReactJsxRuntime_production_min=1;var $=requireReact(),Cr=Symbol.for("react.element"),kr=Symbol.for("react.fragment"),Pr=Object.prototype.hasOwnProperty,Rr=$.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Ir={key:!0,ref:!0,__self:!0,__source:!0};function Fr(Lr,qr,fa){var pa,ga={},xa=null,ya=null;fa!==void 0&&(xa=""+fa),qr.key!==void 0&&(xa=""+qr.key),qr.ref!==void 0&&(ya=qr.ref);for(pa in qr)Pr.call(qr,pa)&&!Ir.hasOwnProperty(pa)&&(ga[pa]=qr[pa]);if(Lr&&Lr.defaultProps)for(pa in qr=Lr.defaultProps,qr)ga[pa]===void 0&&(ga[pa]=qr[pa]);return{$$typeof:Cr,type:Lr,key:xa,ref:ya,props:ga,_owner:Rr.current}}return reactJsxRuntime_production_min.Fragment=kr,reactJsxRuntime_production_min.jsx=Fr,reactJsxRuntime_production_min.jsxs=Fr,reactJsxRuntime_production_min}var hasRequiredJsxRuntime;function requireJsxRuntime(){return hasRequiredJsxRuntime||(hasRequiredJsxRuntime=1,jsxRuntime.exports=requireReactJsxRuntime_production_min()),jsxRuntime.exports}var jsxRuntimeExports=requireJsxRuntime(),reactExports=requireReact();const React=getDefaultExportFromCjs(reactExports),React$1=_mergeNamespaces({__proto__:null,default:React},[reactExports]);var t$a=typeof window<"u"?window:void 0,i$2=typeof globalThis<"u"?globalThis:t$a;typeof self>"u"&&(i$2.self=i$2),typeof File>"u"&&(i$2.File=function(){});var e$n=i$2==null?void 0:i$2.navigator,r$c=i$2==null?void 0:i$2.document,s$d=i$2==null?void 0:i$2.location,n$9=i$2==null?void 0:i$2.fetch,o$d=i$2!=null&&i$2.XMLHttpRequest&&"withCredentials"in new i$2.XMLHttpRequest?i$2.XMLHttpRequest:void 0,a$h=i$2==null?void 0:i$2.AbortController,l$4=i$2==null?void 0:i$2.CompressionStream,u$1=e$n==null?void 0:e$n.userAgent,h$3=t$a??{},d$1="1.369.3",v$1={DEBUG:!1,LIB_VERSION:d$1,LIB_NAME:"web",JS_SDK_VERSION:d$1};function c$6($,Cr,kr,Pr,Rr,Ir,Fr){try{var Lr=$[Ir](Fr),qr=Lr.value}catch(fa){return void kr(fa)}Lr.done?Cr(qr):Promise.resolve(qr).then(Pr,Rr)}function f$2($){return function(){var Cr=this,kr=arguments;return new Promise((function(Pr,Rr){var Ir=$.apply(Cr,kr);function Fr(qr){c$6(Ir,Pr,Rr,Fr,Lr,"next",qr)}function Lr(qr){c$6(Ir,Pr,Rr,Fr,Lr,"throw",qr)}Fr(void 0)}))}}function p$3(){return p$3=Object.assign?Object.assign.bind():function($){for(var Cr=1;arguments.length>Cr;Cr++){var kr=arguments[Cr];for(var Pr in kr)({}).hasOwnProperty.call(kr,Pr)&&($[Pr]=kr[Pr])}return $},p$3.apply(null,arguments)}function _$2($,Cr){if($==null)return{};var kr={};for(var Pr in $)if({}.hasOwnProperty.call($,Pr)){if(Cr.indexOf(Pr)!==-1)continue;kr[Pr]=$[Pr]}return kr}function g$1(){return(g$1=f$2((function*($,Cr,kr){Cr===void 0&&(Cr=!0);try{var Pr=new Blob([$],{type:"text/plain"}).stream().pipeThrough(new CompressionStream("gzip"));return yield new Response(Pr).blob()}catch(Rr){if(kr!=null&&kr.rethrow)throw Rr;return Cr&&console.error("Failed to gzip compress data",Rr),null}}))).apply(this,arguments)}var m$6=["$snapshot","$pageview","$pageleave","$set","survey dismissed","survey sent","survey shown","$identify","$groupidentify","$create_alias","$$client_ingestion_warning","$web_experiment_applied","$feature_enrollment_update","$feature_flag_called"],b=["amazonbot","amazonproductbot","app.hypefactors.com","applebot","archive.org_bot","awariobot","backlinksextendedbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","dataforseobot","deepscan","duckduckbot","facebookexternal","facebookcatalog","http://yandex.com/bots","hubspot","ia_archiver","leikibot","linkedinbot","meta-externalagent","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","sebot-wa","sitebulb","slackbot","slurp","trendictionbot","turnitin","twitterbot","vercel-screenshot","vercelbot","yahoo! slurp","yandexbot","zoombot","bot.htm","bot.php","(bot;","bot/","crawler","ahrefsbot","ahrefssiteaudit","semrushbot","siteauditbot","splitsignalbot","gptbot","oai-searchbot","chatgpt-user","perplexitybot","better uptime bot","sentryuptimebot","uptimerobot","headlesschrome","cypress","google-hoteladsverifier","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleother","google-cloudvertexbot","googleweblight","mediapartners-google","storebot-google","google-inspectiontool","bytespider"],y=function($,Cr){if(Cr===void 0&&(Cr=[]),!$)return!1;var kr=$.toLowerCase();return b.concat(Cr).some((Pr=>{var Rr=Pr.toLowerCase();return kr.indexOf(Rr)!==-1}))};function w$1($,Cr){return $.indexOf(Cr)!==-1}var E=function($){return $.trim()},S=function($){return $.replace(/^\$/,"")},x=Object.prototype,T=x.hasOwnProperty,R=x.toString,k=Array.isArray||function($){return R.call($)==="[object Array]"},P$1=$=>typeof $=="function",O=$=>$===Object($)&&!k($),I$1=$=>{if(O($)){for(var Cr in $)if(T.call($,Cr))return!1;return!0}return!1},C=$=>$===void 0,F=$=>R.call($)=="[object String]",A=$=>F($)&&$.trim().length===0,M$1=$=>$===null,D=$=>C($)||M$1($),L=$=>R.call($)=="[object Number]"&&$==$,U=$=>L($)&&$>0,N$1=$=>R.call($)==="[object Boolean]",j$1=$=>$ instanceof FormData,z=$=>w$1(m$6,$);function B($){return $===null||typeof $!="object"}function H($,Cr){return{}.toString.call($)==="[object "+Cr+"]"}function q($){return typeof Event<"u"&&(function(Cr,kr){try{return Cr instanceof kr}catch{return!1}})($,Event)}var V=[!0,"true",1,"1","yes"],W=$=>w$1(V,$),G=[!1,"false",0,"0","no"];function Y($,Cr,kr,Pr,Rr){return Cr>kr&&(Pr.warn("min cannot be greater than max."),Cr=kr),L($)?$>kr?(Pr.warn(" cannot be greater than max: "+kr+". Using max value instead."),kr):Cr>$?(Pr.warn(" cannot be less than min: "+Cr+". Using min value instead."),Cr):$:(Pr.warn(" must be a number. using max or fallback. max: "+kr+", fallback: "+Rr),Y(Rr||kr,Cr,kr,Pr))}class J{constructor(Cr){this.Pt={},this.Dt=Cr.Dt,this.jt=Y(Cr.bucketSize,0,100,Cr.qt),this.$t=Y(Cr.refillRate,0,this.jt,Cr.qt),this.Vt=Y(Cr.refillInterval,0,864e5,Cr.qt)}Ht(Cr,kr){var Pr=Math.floor((kr-Cr.lastAccess)/this.Vt);Pr>0&&(Cr.tokens=Math.min(Cr.tokens+Pr*this.$t,this.jt),Cr.lastAccess=Cr.lastAccess+Pr*this.Vt)}consumeRateLimit(Cr){var kr,Pr=Date.now(),Rr=String(Cr),Ir=this.Pt[Rr];return Ir?this.Ht(Ir,Pr):this.Pt[Rr]=Ir={tokens:this.jt,lastAccess:Pr},Ir.tokens===0||(Ir.tokens--,Ir.tokens===0&&((kr=this.Dt)==null||kr.call(this,Cr)),Ir.tokens===0)}stop(){this.Pt={}}}var K,X,Q,Z="Mobile",tt="iOS",it="Android",et="Tablet",rt=it+" "+et,st="iPad",nt="Apple",ot=nt+" Watch",at="Safari",lt="BlackBerry",ut="Samsung",ht=ut+"Browser",dt=ut+" Internet",vt="Chrome",ct=vt+" OS",ft=vt+" "+tt,pt="Internet Explorer",_t=pt+" "+Z,gt="Opera",mt=gt+" Mini",bt="Edge",yt="Microsoft "+bt,wt="Firefox",Et=wt+" "+tt,St="Nintendo",xt="PlayStation",Tt="Xbox",$t=it+" "+Z,Rt=Z+" "+at,kt="Windows",Pt=kt+" Phone",Ot="Nokia",It="Ouya",Ct="Generic",Ft=Ct+" "+Z.toLowerCase(),At=Ct+" "+et.toLowerCase(),Mt="Konqueror",Dt="(\\d+(\\.\\d+)?)",Lt=new RegExp("Version/"+Dt),Ut=new RegExp(Tt,"i"),Nt=new RegExp(xt+" \\w+","i"),jt=new RegExp(St+" \\w+","i"),zt=new RegExp(lt+"|PlayBook|BB10","i"),Bt={"NT3.51":"NT 3.11","NT4.0":"NT 4.0","5.0":"2000",5.1:"XP",5.2:"XP","6.0":"Vista",6.1:"7",6.2:"8",6.3:"8.1",6.4:"10","10.0":"10"},Ht=function($,Cr){return Cr=Cr||"",w$1($," OPR/")&&w$1($,"Mini")?mt:w$1($," OPR/")?gt:zt.test($)?lt:w$1($,"IE"+Z)||w$1($,"WPDesktop")?_t:w$1($,ht)?dt:w$1($,bt)||w$1($,"Edg/")?yt:w$1($,"FBIOS")?"Facebook "+Z:w$1($,"UCWEB")||w$1($,"UCBrowser")?"UC Browser":w$1($,"CriOS")?ft:w$1($,"CrMo")||w$1($,vt)?vt:w$1($,it)&&w$1($,at)?$t:w$1($,"FxiOS")?Et:w$1($.toLowerCase(),Mt.toLowerCase())?Mt:((kr,Pr)=>Pr&&w$1(Pr,nt)||(function(Rr){return w$1(Rr,at)&&!w$1(Rr,vt)&&!w$1(Rr,it)})(kr))($,Cr)?w$1($,Z)?Rt:at:w$1($,wt)?wt:w$1($,"MSIE")||w$1($,"Trident/")?pt:w$1($,"Gecko")?wt:""},qt={[_t]:[new RegExp("rv:"+Dt)],[yt]:[new RegExp(bt+"?\\/"+Dt)],[vt]:[new RegExp("("+vt+"|CrMo)\\/"+Dt)],[ft]:[new RegExp("CriOS\\/"+Dt)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+Dt)],[at]:[Lt],[Rt]:[Lt],[gt]:[new RegExp("(Opera|OPR)\\/"+Dt)],[wt]:[new RegExp(wt+"\\/"+Dt)],[Et]:[new RegExp("FxiOS\\/"+Dt)],[Mt]:[new RegExp("Konqueror[:/]?"+Dt,"i")],[lt]:[new RegExp(lt+" "+Dt),Lt],[$t]:[new RegExp("android\\s"+Dt,"i")],[dt]:[new RegExp(ht+"\\/"+Dt)],[pt]:[new RegExp("(rv:|MSIE )"+Dt)],Mozilla:[new RegExp("rv:"+Dt)]},Vt=function($,Cr){var kr=Ht($,Cr),Pr=qt[kr];if(C(Pr))return null;for(var Rr=0;Pr.length>Rr;Rr++){var Ir=$.match(Pr[Rr]);if(Ir)return parseFloat(Ir[Ir.length-2])}return null},Wt=[[new RegExp(Tt+"; "+Tt+" (.*?)[);]","i"),$=>[Tt,$&&$[1]||""]],[new RegExp(St,"i"),[St,""]],[new RegExp(xt,"i"),[xt,""]],[zt,[lt,""]],[new RegExp(kt,"i"),($,Cr)=>{if(/Phone/.test(Cr)||/WPDesktop/.test(Cr))return[Pt,""];if(new RegExp(Z).test(Cr)&&!/IEMobile\b/.test(Cr))return[kt+" "+Z,""];var kr=/Windows NT ([0-9.]+)/i.exec(Cr);if(kr&&kr[1]){var Pr=Bt[kr[1]]||"";return/arm/i.test(Cr)&&(Pr="RT"),[kt,Pr]}return[kt,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,$=>$&&$[3]?[tt,[$[3],$[4],$[5]||"0"].join(".")]:[tt,""]],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,$=>{var Cr="";return $&&$.length>=3&&(Cr=C($[2])?$[3]:$[2]),["watchOS",Cr]}],[new RegExp("("+it+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+it+")","i"),$=>$&&$[2]?[it,[$[2],$[3],$[4]||"0"].join(".")]:[it,""]],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,$=>{var Cr=["Mac OS X",""];return $&&$[1]&&(Cr[1]=[$[1],$[2],$[3]||"0"].join(".")),Cr}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[ct,""]],[/Linux|debian/i,["Linux",""]]],Gt=function($){return jt.test($)?St:Nt.test($)?xt:Ut.test($)?Tt:new RegExp(It,"i").test($)?It:new RegExp("("+Pt+"|WPDesktop)","i").test($)?Pt:/iPad/.test($)?st:/iPod/.test($)?"iPod Touch":/iPhone/.test($)?"iPhone":/(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i.test($)?ot:zt.test($)?lt:/(kobo)\s(ereader|touch)/i.test($)?"Kobo":new RegExp(Ot,"i").test($)?Ot:/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i.test($)||/(kf[a-z]+)( bui|\)).+silk\//i.test($)?"Kindle Fire":/(Android|ZTE)/i.test($)?new RegExp(Z).test($)&&!/(9138B|TB782B|Nexus [97]|pixel c|HUAWEISHT|BTV|noble nook|smart ultra 6)/i.test($)||/pixel[\daxl ]{1,6}/i.test($)&&!/pixel c/i.test($)||/(huaweimed-al00|tah-|APA|SM-G92|i980|zte|U304AA)/i.test($)||/lmy47v/i.test($)&&!/QTAQZ3/i.test($)?it:rt:new RegExp("(pda|"+Z+")","i").test($)?Ft:new RegExp(et,"i").test($)&&!new RegExp(et+" pc","i").test($)?At:""},Yt=$=>$ instanceof Error;function Jt($){var Cr=globalThis._posthogChunkIds;if(Cr){var kr=Object.keys(Cr);return Q&&kr.length===X||(X=kr.length,Q=kr.reduce(((Pr,Rr)=>{K||(K={});var Ir=K[Rr];if(Ir)Pr[Ir[0]]=Ir[1];else for(var Fr=$(Rr),Lr=Fr.length-1;Lr>=0;Lr--){var qr=Fr[Lr],fa=qr==null?void 0:qr.filename,pa=Cr[Rr];if(fa&&pa){Pr[fa]=pa,K[Rr]=[fa,pa];break}}return Pr}),{})),Q}}class Kt{constructor(Cr,kr,Pr){Pr===void 0&&(Pr=[]),this.coercers=Cr,this.stackParser=kr,this.modifiers=Pr}buildFromUnknown(Cr,kr){kr===void 0&&(kr={});var Pr=kr&&kr.mechanism||{handled:!0,type:"generic"},Rr=this.buildCoercingContext(Pr,kr,0).apply(Cr),Ir=this.buildParsingContext(kr),Fr=this.parseStacktrace(Rr,Ir);return{$exception_list:this.convertToExceptionList(Fr,Pr),$exception_level:"error"}}modifyFrames(Cr){var kr=this;return f$2((function*(){for(var Pr of Cr)Pr.stacktrace&&Pr.stacktrace.frames&&k(Pr.stacktrace.frames)&&(Pr.stacktrace.frames=yield kr.applyModifiers(Pr.stacktrace.frames));return Cr}))()}coerceFallback(Cr){var kr;return{type:"Error",value:"Unknown error",stack:(kr=Cr.syntheticException)==null?void 0:kr.stack,synthetic:!0}}parseStacktrace(Cr,kr){var Pr,Rr;return Cr.cause!=null&&(Pr=this.parseStacktrace(Cr.cause,kr)),Cr.stack!=""&&Cr.stack!=null&&(Rr=this.applyChunkIds(this.stackParser(Cr.stack,Cr.synthetic?kr.skipFirstLines:0),kr.chunkIdMap)),p$3({},Cr,{cause:Pr,stack:Rr})}applyChunkIds(Cr,kr){return Cr.map((Pr=>(Pr.filename&&kr&&(Pr.chunk_id=kr[Pr.filename]),Pr)))}applyCoercers(Cr,kr){for(var Pr of this.coercers)if(Pr.match(Cr))return Pr.coerce(Cr,kr);return this.coerceFallback(kr)}applyModifiers(Cr){var kr=this;return f$2((function*(){var Pr=Cr;for(var Rr of kr.modifiers)Pr=yield Rr(Pr);return Pr}))()}convertToExceptionList(Cr,kr){var Pr,Rr,Ir,Fr={type:Cr.type,value:Cr.value,mechanism:{type:(Pr=kr.type)!==null&&Pr!==void 0?Pr:"generic",handled:(Rr=kr.handled)===null||Rr===void 0||Rr,synthetic:(Ir=Cr.synthetic)!==null&&Ir!==void 0&&Ir}};Cr.stack&&(Fr.stacktrace={type:"raw",frames:Cr.stack});var Lr=[Fr];return Cr.cause!=null&&Lr.push(...this.convertToExceptionList(Cr.cause,p$3({},kr,{handled:!0}))),Lr}buildParsingContext(Cr){var kr;return{chunkIdMap:Jt(this.stackParser),skipFirstLines:(kr=Cr.skipFirstLines)!==null&&kr!==void 0?kr:1}}buildCoercingContext(Cr,kr,Pr){Pr===void 0&&(Pr=0);var Rr=(Ir,Fr)=>{if(4>=Fr){var Lr=this.buildCoercingContext(Cr,kr,Fr);return this.applyCoercers(Ir,Lr)}};return p$3({},kr,{syntheticException:Pr==0?kr.syntheticException:void 0,mechanism:Cr,apply:Ir=>Rr(Ir,Pr),next:Ir=>Rr(Ir,Pr+1)})}}var Xt="?";function Qt($,Cr,kr,Pr,Rr){var Ir={platform:$,filename:Cr,function:kr==="<anonymous>"?Xt:kr,in_app:!0};return C(Pr)||(Ir.lineno=Pr),C(Rr)||(Ir.colno=Rr),Ir}var Zt=($,Cr)=>{var kr=$.indexOf("safari-extension")!==-1,Pr=$.indexOf("safari-web-extension")!==-1;return kr||Pr?[$.indexOf("@")!==-1?$.split("@")[0]:Xt,kr?"safari-extension:"+Cr:"safari-web-extension:"+Cr]:[$,Cr]},ti=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,ii=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,ei=/\((\S*)(?::(\d+))(?::(\d+))\)/,ri=($,Cr)=>{var kr=ti.exec($);if(kr){var[,Pr,Rr,Ir]=kr;return Qt(Cr,Pr,Xt,+Rr,+Ir)}var Fr=ii.exec($);if(Fr){if(Fr[2]&&Fr[2].indexOf("eval")===0){var Lr=ei.exec(Fr[2]);Lr&&(Fr[2]=Lr[1],Fr[3]=Lr[2],Fr[4]=Lr[3])}var[qr,fa]=Zt(Fr[1]||Xt,Fr[2]);return Qt(Cr,fa,qr,Fr[3]?+Fr[3]:void 0,Fr[4]?+Fr[4]:void 0)}},si=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,ni=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,oi=($,Cr)=>{var kr=si.exec($);if(kr){if(kr[3]&&kr[3].indexOf(" > eval")>-1){var Pr=ni.exec(kr[3]);Pr&&(kr[1]=kr[1]||"eval",kr[3]=Pr[1],kr[4]=Pr[2],kr[5]="")}var Rr=kr[3],Ir=kr[1]||Xt;return[Ir,Rr]=Zt(Ir,Rr),Qt(Cr,Rr,Ir,kr[4]?+kr[4]:void 0,kr[5]?+kr[5]:void 0)}},ai=/\(error: (.*)\)/;class li{match(Cr){return this.isDOMException(Cr)||this.isDOMError(Cr)}coerce(Cr,kr){var Pr=F(Cr.stack);return{type:this.getType(Cr),value:this.getValue(Cr),stack:Pr?Cr.stack:void 0,cause:Cr.cause?kr.next(Cr.cause):void 0,synthetic:!1}}getType(Cr){return this.isDOMError(Cr)?"DOMError":"DOMException"}getValue(Cr){var kr=Cr.name||(this.isDOMError(Cr)?"DOMError":"DOMException");return Cr.message?kr+": "+Cr.message:kr}isDOMException(Cr){return H(Cr,"DOMException")}isDOMError(Cr){return H(Cr,"DOMError")}}class ui{match(Cr){return(kr=>kr instanceof Error)(Cr)}coerce(Cr,kr){return{type:this.getType(Cr),value:this.getMessage(Cr,kr),stack:this.getStack(Cr),cause:Cr.cause?kr.next(Cr.cause):void 0,synthetic:!1}}getType(Cr){return Cr.name||Cr.constructor.name}getMessage(Cr,kr){var Pr=Cr.message;return String(Pr.error&&typeof Pr.error.message=="string"?Pr.error.message:Pr)}getStack(Cr){return Cr.stacktrace||Cr.stack||void 0}}class hi{constructor(){}match(Cr){return H(Cr,"ErrorEvent")&&Cr.error!=null}coerce(Cr,kr){var Pr;return kr.apply(Cr.error)||{type:"ErrorEvent",value:Cr.message,stack:(Pr=kr.syntheticException)==null?void 0:Pr.stack,synthetic:!0}}}var di=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;class vi{match(Cr){return typeof Cr=="string"}coerce(Cr,kr){var Pr,[Rr,Ir]=this.getInfos(Cr);return{type:Rr??"Error",value:Ir??Cr,stack:(Pr=kr.syntheticException)==null?void 0:Pr.stack,synthetic:!0}}getInfos(Cr){var kr="Error",Pr=Cr,Rr=Cr.match(di);return Rr&&(kr=Rr[1],Pr=Rr[2]),[kr,Pr]}}var ci=["fatal","error","warning","log","info","debug"];function fi($,Cr){Cr===void 0&&(Cr=40);var kr=Object.keys($);if(kr.sort(),!kr.length)return"[object has no keys]";for(var Pr=kr.length;Pr>0;Pr--){var Rr=kr.slice(0,Pr).join(", ");if(Cr>=Rr.length)return Pr===kr.length?Rr:Rr.length>Cr?Rr.slice(0,Cr)+"...":Rr}return""}class pi{match(Cr){return typeof Cr=="object"&&Cr!==null}coerce(Cr,kr){var Pr,Rr=this.getErrorPropertyFromObject(Cr);return Rr?kr.apply(Rr):{type:this.getType(Cr),value:this.getValue(Cr),stack:(Pr=kr.syntheticException)==null?void 0:Pr.stack,level:this.isSeverityLevel(Cr.level)?Cr.level:"error",synthetic:!0}}getType(Cr){return q(Cr)?Cr.constructor.name:"Error"}getValue(Cr){if("name"in Cr&&typeof Cr.name=="string"){var kr="'"+Cr.name+"' captured as exception";return"message"in Cr&&typeof Cr.message=="string"&&(kr+=" with message: '"+Cr.message+"'"),kr}if("message"in Cr&&typeof Cr.message=="string")return Cr.message;var Pr=this.getObjectClassName(Cr);return(Pr&&Pr!=="Object"?"'"+Pr+"'":"Object")+" captured as exception with keys: "+fi(Cr)}isSeverityLevel(Cr){return F(Cr)&&!A(Cr)&&ci.indexOf(Cr)>=0}getErrorPropertyFromObject(Cr){for(var kr in Cr)if({}.hasOwnProperty.call(Cr,kr)){var Pr=Cr[kr];if(Yt(Pr))return Pr}}getObjectClassName(Cr){try{var kr=Object.getPrototypeOf(Cr);return kr?kr.constructor.name:void 0}catch{return}}}class _i{match(Cr){return q(Cr)}coerce(Cr,kr){var Pr,Rr=Cr.constructor.name;return{type:Rr,value:Rr+" captured as exception with keys: "+fi(Cr),stack:(Pr=kr.syntheticException)==null?void 0:Pr.stack,synthetic:!0}}}class gi{match(Cr){return B(Cr)}coerce(Cr,kr){var Pr;return{type:"Error",value:"Primitive value captured as exception: "+String(Cr),stack:(Pr=kr.syntheticException)==null?void 0:Pr.stack,synthetic:!0}}}class mi{match(Cr){return H(Cr,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection(Cr)}isCustomEventWrappingRejection(Cr){if(!q(Cr))return!1;try{var kr=Cr.detail;return kr!=null&&typeof kr=="object"&&"reason"in kr}catch{return!1}}coerce(Cr,kr){var Pr,Rr=this.getUnhandledRejectionReason(Cr);return B(Rr)?{type:"UnhandledRejection",value:"Non-Error promise rejection captured with value: "+String(Rr),stack:(Pr=kr.syntheticException)==null?void 0:Pr.stack,synthetic:!0}:kr.apply(Rr)}getUnhandledRejectionReason(Cr){try{if("reason"in Cr)return Cr.reason;if("detail"in Cr&&Cr.detail!=null&&typeof Cr.detail=="object"&&"reason"in Cr.detail)return Cr.detail.reason}catch{}return Cr}}var bi=function($,Cr){var{debugEnabled:kr}=Cr===void 0?{}:Cr,Pr={C(Rr){if(t$a&&(v$1.DEBUG||h$3.POSTHOG_DEBUG||kr)&&!C(t$a.console)&&t$a.console){for(var Ir=("__rrweb_original__"in t$a.console[Rr])?t$a.console[Rr].__rrweb_original__:t$a.console[Rr],Fr=arguments.length,Lr=new Array(Fr>1?Fr-1:0),qr=1;Fr>qr;qr++)Lr[qr-1]=arguments[qr];Ir($,...Lr)}},info(){for(var Rr=arguments.length,Ir=new Array(Rr),Fr=0;Rr>Fr;Fr++)Ir[Fr]=arguments[Fr];Pr.C("log",...Ir)},warn(){for(var Rr=arguments.length,Ir=new Array(Rr),Fr=0;Rr>Fr;Fr++)Ir[Fr]=arguments[Fr];Pr.C("warn",...Ir)},error(){for(var Rr=arguments.length,Ir=new Array(Rr),Fr=0;Rr>Fr;Fr++)Ir[Fr]=arguments[Fr];Pr.C("error",...Ir)},critical(){for(var Rr=arguments.length,Ir=new Array(Rr),Fr=0;Rr>Fr;Fr++)Ir[Fr]=arguments[Fr];console.error($,...Ir)},uninitializedWarning(Rr){Pr.error("You must initialize PostHog before calling "+Rr)},createLogger:(Rr,Ir)=>bi($+" "+Rr,Ir)};return Pr},yi=bi("[PostHog.js]"),wi=yi.createLogger,Ei=wi("[ExternalScriptsLoader]"),Si=($,Cr,kr)=>{if($.config.disable_external_dependency_loading)return Ei.warn(Cr+" was requested but loading of external scripts is disabled."),kr("Loading of external scripts is disabled");var Pr=r$c==null?void 0:r$c.querySelectorAll("script");if(Pr){for(var Rr,Ir=function(){if(Pr[Fr].src===Cr){var qr=Pr[Fr];return qr.__posthog_loading_callback_fired?{v:kr()}:(qr.addEventListener("load",(fa=>{qr.__posthog_loading_callback_fired=!0,kr(void 0,fa)})),qr.onerror=fa=>kr(fa),{v:void 0})}},Fr=0;Pr.length>Fr;Fr++)if(Rr=Ir())return Rr.v}var Lr=()=>{if(!r$c)return kr("document not found");var qr=r$c.createElement("script");if(qr.type="text/javascript",qr.crossOrigin="anonymous",qr.src=Cr,qr.onload=ga=>{qr.__posthog_loading_callback_fired=!0,kr(void 0,ga)},qr.onerror=ga=>kr(ga),$.config.prepare_external_dependency_script&&(qr=$.config.prepare_external_dependency_script(qr)),!qr)return kr("prepare_external_dependency_script returned null");if($.config.external_scripts_inject_target==="head")r$c.head.appendChild(qr);else{var fa,pa=r$c.querySelectorAll("body > script");pa.length>0?(fa=pa[0].parentNode)==null||fa.insertBefore(qr,pa[0]):r$c.body.appendChild(qr)}};r$c!=null&&r$c.body?Lr():r$c==null||r$c.addEventListener("DOMContentLoaded",Lr)};h$3.__PosthogExtensions__=h$3.__PosthogExtensions__||{},h$3.__PosthogExtensions__.loadExternalDependency=($,Cr,kr)=>{if(Cr!=="remote-config"){var Pr;if($.config.__preview_external_dependency_versioned_paths)Pr=$.requestRouter.endpointFor("assets","/static/"+$.version+"/"+Cr+".js");else{var Rr="/static/"+Cr+".js?v="+$.version;if(Cr==="toolbar"){var Ir=3e5;Rr=Rr+"&t="+Math.floor(Date.now()/Ir)*Ir}Pr=$.requestRouter.endpointFor("assets",Rr)}Si($,Pr,kr)}else{var Fr=$.requestRouter.endpointFor("assets","/array/"+$.config.token+"/config.js");Si($,Fr,kr)}},h$3.__PosthogExtensions__.loadSiteApp=($,Cr,kr)=>{var Pr=$.requestRouter.endpointFor("api",Cr);Si($,Pr,kr)};var xi="$people_distinct_id",Ti="$device_id",$i="__alias",Ri="__timers",ki="$autocapture_disabled_server_side",Pi="$heatmaps_enabled_server_side",Oi="$exception_capture_enabled_server_side",Ii="$error_tracking_suppression_rules",Ci="$error_tracking_capture_extension_exceptions",Fi="$web_vitals_enabled_server_side",Ai="$dead_clicks_enabled_server_side",Mi="$product_tours_enabled_server_side",Di="$web_vitals_allowed_metrics",Li="$session_recording_remote_config",Ui="$sesid",Ni="$session_is_sampled",ji="$enabled_feature_flags",zi="$early_access_features",Bi="$feature_flag_details",Hi="$feature_flag_payloads",qi="$override_feature_flag_payloads",Vi="$stored_person_properties",Wi="$stored_group_properties",Gi="$surveys",Yi="ph_product_tours",Ji="$flag_call_reported",Ki="$flag_call_reported_session_id",Xi="$feature_flag_errors",Qi="$feature_flag_evaluated_at",Zi="$user_state",te="$client_session_props",ie="$capture_rate_limit",ee="$initial_campaign_params",re$1="$initial_referrer_info",se="$initial_person_info",ne="$epp",oe="__POSTHOG_TOOLBAR__",ae="$posthog_cookieless",le=[xi,$i,"__cmpns",Ri,"$session_recording_enabled_server_side",Pi,Ui,ji,Ii,Zi,zi,Bi,Wi,Vi,Gi,Ji,Ki,Xi,Qi,te,ie,ee,re$1,ne,se,Yi,"$product_tours_activated",Mi,Li,qi],ue="PostHog loadExternalDependency extension not found.",he="on_reject",de="always",ve$1="anonymous",ce="identified",fe="identified_only",pe="visibilitychange",_e="beforeunload",ge="$pageview",me="$pageleave",be="$identify",ye="$groupidentify";function we$1($,Cr){k($)&&$.forEach(Cr)}function Ee($,Cr){if(!D($))if(k($))$.forEach(Cr);else if(j$1($))$.forEach(((Pr,Rr)=>Cr(Pr,Rr)));else for(var kr in $)T.call($,kr)&&Cr($[kr],kr)}var Se=function($){for(var Cr=arguments.length,kr=new Array(Cr>1?Cr-1:0),Pr=1;Cr>Pr;Pr++)kr[Pr-1]=arguments[Pr];for(var Rr of kr)for(var Ir in Rr)Rr[Ir]!==void 0&&($[Ir]=Rr[Ir]);return $};function xe($){for(var Cr=Object.keys($),kr=Cr.length,Pr=new Array(kr);kr--;)Pr[kr]=[Cr[kr],$[Cr[kr]]];return Pr}var Te=function($){try{return $()}catch{return}},$e=function($){return function(){try{for(var Cr=arguments.length,kr=new Array(Cr),Pr=0;Cr>Pr;Pr++)kr[Pr]=arguments[Pr];return $.apply(this,kr)}catch(Rr){yi.critical("Implementation error. Please turn on debug mode and open a ticket on https://app.posthog.com/home#panel=support%3Asupport%3A."),yi.critical(Rr)}}},Re=function($){var Cr={};return Ee($,(function(kr,Pr){(F(kr)&&kr.length>0||L(kr))&&(Cr[Pr]=kr)})),Cr},ke=["herokuapp.com","vercel.app","netlify.app"];function Pe($){var Cr=$==null?void 0:$.hostname;if(!F(Cr))return!1;var kr=Cr.split(".").slice(-2).join(".");for(var Pr of ke)if(kr===Pr)return!1;return!0}function Oe($,Cr,kr,Pr){var{capture:Rr=!1,passive:Ir=!0}=Pr??{};$==null||$.addEventListener(Cr,kr,{capture:Rr,passive:Ir})}function Ie($){return $.name==="ph_toolbar_internal"}Math.trunc||(Math.trunc=function($){return 0>$?Math.ceil($):Math.floor($)}),Number.isInteger||(Number.isInteger=function($){return L($)&&isFinite($)&&Math.floor($)===$});class Ce{constructor(Cr){if(this.bytes=Cr,Cr.length!==16)throw new TypeError("not 128-bit length")}static fromFieldsV7(Cr,kr,Pr,Rr){if(!Number.isInteger(Cr)||!Number.isInteger(kr)||!Number.isInteger(Pr)||!Number.isInteger(Rr)||0>Cr||0>kr||0>Pr||0>Rr||Cr>0xffffffffffff||kr>4095||Pr>1073741823||Rr>4294967295)throw new RangeError("invalid field value");var Ir=new Uint8Array(16);return Ir[0]=Cr/Math.pow(2,40),Ir[1]=Cr/Math.pow(2,32),Ir[2]=Cr/Math.pow(2,24),Ir[3]=Cr/Math.pow(2,16),Ir[4]=Cr/Math.pow(2,8),Ir[5]=Cr,Ir[6]=112|kr>>>8,Ir[7]=kr,Ir[8]=128|Pr>>>24,Ir[9]=Pr>>>16,Ir[10]=Pr>>>8,Ir[11]=Pr,Ir[12]=Rr>>>24,Ir[13]=Rr>>>16,Ir[14]=Rr>>>8,Ir[15]=Rr,new Ce(Ir)}toString(){for(var Cr="",kr=0;this.bytes.length>kr;kr++)Cr=Cr+(this.bytes[kr]>>>4).toString(16)+(15&this.bytes[kr]).toString(16),kr!==3&&kr!==5&&kr!==7&&kr!==9||(Cr+="-");if(Cr.length!==36)throw new Error("Invalid UUIDv7 was generated");return Cr}clone(){return new Ce(this.bytes.slice(0))}equals(Cr){return this.compareTo(Cr)===0}compareTo(Cr){for(var kr=0;16>kr;kr++){var Pr=this.bytes[kr]-Cr.bytes[kr];if(Pr!==0)return Math.sign(Pr)}return 0}}class Fe{constructor(){this.I=0,this.S=0,this.k=new De}generate(){var Cr=this.generateOrAbort();if(C(Cr)){this.I=0;var kr=this.generateOrAbort();if(C(kr))throw new Error("Could not generate UUID after timestamp reset");return kr}return Cr}generateOrAbort(){var Cr=Date.now();if(Cr>this.I)this.I=Cr,this.A();else{if(this.I>=Cr+1e4)return;this.S++,this.S>4398046511103&&(this.I++,this.A())}return Ce.fromFieldsV7(this.I,Math.trunc(this.S/Math.pow(2,30)),this.S&Math.pow(2,30)-1,this.k.nextUint32())}A(){this.S=1024*this.k.nextUint32()+(1023&this.k.nextUint32())}}var Ae,Me=$=>{if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");for(var Cr=0;$.length>Cr;Cr++)$[Cr]=65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random());return $};t$a&&!C(t$a.crypto)&&crypto.getRandomValues&&(Me=$=>crypto.getRandomValues($));class De{constructor(){this.T=new Uint32Array(8),this.N=1/0}nextUint32(){return this.T.length>this.N||(Me(this.T),this.N=0),this.T[this.N++]}}var Le=()=>Ue().toString(),Ue=()=>(Ae||(Ae=new Fe)).generate(),Ne="",je=/[a-z0-9][a-z0-9-]+\.[a-z]{2,}$/i,ze={Ut:()=>!!r$c,Yt($){yi.error("cookieStore error: "+$)},Gt($){if(r$c){try{for(var Cr=$+"=",kr=r$c.cookie.split(";").filter((Ir=>Ir.length)),Pr=0;kr.length>Pr;Pr++){for(var Rr=kr[Pr];Rr.charAt(0)==" ";)Rr=Rr.substring(1,Rr.length);if(Rr.indexOf(Cr)===0)return decodeURIComponent(Rr.substring(Cr.length,Rr.length))}}catch{}return null}},Wt($){var Cr;try{Cr=JSON.parse(ze.Gt($))||{}}catch{}return Cr},Xt($,Cr,kr,Pr,Rr){if(r$c)try{var Ir="",Fr="",Lr=(function(pa,ga){if(ga){var xa=(function(ba,Aa){if(Aa===void 0&&(Aa=r$c),Ne)return Ne;if(!Aa||["localhost","127.0.0.1"].includes(ba))return"";for(var ka=ba.split("."),Ea=Math.min(ka.length,8),Sa="dmn_chk_"+Le();!Ne&&Ea--;){var Ca=ka.slice(Ea).join("."),Ta=Sa+"=1;domain=."+Ca+";path=/";Aa.cookie=Ta+";max-age=3",Aa.cookie.includes(Sa)&&(Aa.cookie=Ta+";max-age=0",Ne=Ca)}return Ne})(pa);if(!xa){var ya=(ba=>{var Aa=ba.match(je);return Aa?Aa[0]:""})(pa);ya!==xa&&yi.info("Warning: cookie subdomain discovery mismatch",ya,xa),xa=ya}return xa?"; domain=."+xa:""}return""})(r$c.location.hostname,Pr);if(kr){var qr=new Date;qr.setTime(qr.getTime()+864e5*kr),Ir="; expires="+qr.toUTCString()}Rr&&(Fr="; secure");var fa=$+"="+encodeURIComponent(JSON.stringify(Cr))+Ir+"; SameSite=Lax; path=/"+Lr+Fr;return fa.length>3686.4&&yi.warn("cookieStore warning: large cookie, len="+fa.length),r$c.cookie=fa,fa}catch{return}},Jt($,Cr){if(r$c!=null&&r$c.cookie)try{ze.Xt($,"",-1,Cr)}catch{return}}},Be=null,He={Ut(){if(!M$1(Be))return Be;var $=!0;if(C(t$a))$=!1;else try{var Cr="__mplssupport__";He.Xt(Cr,"xyz"),He.Gt(Cr)!=='"xyz"'&&($=!1),He.Jt(Cr)}catch{$=!1}return $||yi.error("localStorage unsupported; falling back to cookie store"),Be=$,$},Yt($){yi.error("localStorage error: "+$)},Gt($){try{return t$a==null?void 0:t$a.localStorage.getItem($)}catch(Cr){He.Yt(Cr)}return null},Wt($){try{return JSON.parse(He.Gt($))||{}}catch{}return null},Xt($,Cr){try{t$a==null||t$a.localStorage.setItem($,JSON.stringify(Cr))}catch(kr){He.Yt(kr)}},Jt($){try{t$a==null||t$a.localStorage.removeItem($)}catch(Cr){He.Yt(Cr)}}},qe=[Ti,"distinct_id",Ui,Ni,ne,se,Zi],Ve={},We={Ut:()=>!0,Yt($){yi.error("memoryStorage error: "+$)},Gt:$=>Ve[$]||null,Wt:$=>Ve[$]||null,Xt($,Cr){Ve[$]=Cr},Jt($){delete Ve[$]}},Ge=null,Ye={Ut(){if(!M$1(Ge))return Ge;if(Ge=!0,C(t$a))Ge=!1;else try{var $="__support__";Ye.Xt($,"xyz"),Ye.Gt($)!=='"xyz"'&&(Ge=!1),Ye.Jt($)}catch{Ge=!1}return Ge},Yt($){yi.error("sessionStorage error: ",$)},Gt($){try{return t$a==null?void 0:t$a.sessionStorage.getItem($)}catch(Cr){Ye.Yt(Cr)}return null},Wt($){try{return JSON.parse(Ye.Gt($))||null}catch{}return null},Xt($,Cr){try{t$a==null||t$a.sessionStorage.setItem($,JSON.stringify(Cr))}catch(kr){Ye.Yt(kr)}},Jt($){try{t$a==null||t$a.sessionStorage.removeItem($)}catch(Cr){Ye.Yt(Cr)}}};class Je{constructor(Cr){this._instance=Cr}get Rt(){return this._instance.config}get consent(){return this.Kt()?0:this.Qt}isOptedOut(){return this.Rt.cookieless_mode===de||this.consent===0||this.consent===-1&&(this.Rt.opt_out_capturing_by_default||this.Rt.cookieless_mode===he)}isOptedIn(){return!this.isOptedOut()}isExplicitlyOptedOut(){return this.consent===0}optInOut(Cr){this.ti.Xt(this.ei,Cr?1:0,this.Rt.cookie_expiration,this.Rt.cross_subdomain_cookie,this.Rt.secure_cookie)}reset(){this.ti.Jt(this.ei,this.Rt.cross_subdomain_cookie)}get ei(){var{token:Cr,opt_out_capturing_cookie_prefix:kr,consent_persistence_name:Pr}=this._instance.config;return Pr||(kr?kr+Cr:"__ph_opt_in_out_"+Cr)}get Qt(){var Cr=this.ti.Gt(this.ei);return W(Cr)?1:w$1(G,Cr)?0:-1}get ti(){var Cr=this.Rt.opt_out_capturing_persistence_type,kr=Cr==="localStorage"?He:ze;if(!this.ii||this.ii!==kr){this.ii=kr;var Pr=Cr==="localStorage"?ze:He;Pr.Gt(this.ei)&&(this.ii.Gt(this.ei)||this.optInOut(W(Pr.Gt(this.ei))),Pr.Jt(this.ei,this.Rt.cross_subdomain_cookie))}return this.ii}Kt(){return!!this.Rt.respect_dnt&&[e$n==null?void 0:e$n.doNotTrack,e$n==null?void 0:e$n.msDoNotTrack,h$3.doNotTrack].some((Cr=>W(Cr)))}}var Ke=wi("[Dead Clicks]"),Xe=()=>!0,Qe=$=>{var Cr,kr=!((Cr=$.instance.persistence)==null||!Cr.get_property(Ai)),Pr=$.instance.config.capture_dead_clicks;return N$1(Pr)?Pr:!!O(Pr)||kr};class Ze{get lazyLoadedDeadClicksAutocapture(){return this.ri}constructor(Cr,kr,Pr){this.instance=Cr,this.isEnabled=kr,this.onCapture=Pr,this.startIfEnabledOrStop()}onRemoteConfig(Cr){"captureDeadClicks"in Cr&&(this.instance.persistence&&this.instance.persistence.register({[Ai]:Cr.captureDeadClicks}),this.startIfEnabledOrStop())}startIfEnabledOrStop(){this.isEnabled(this)?this.ni((()=>{this.si()})):this.stop()}ni(Cr){var kr,Pr;(kr=h$3.__PosthogExtensions__)!=null&&kr.initDeadClicksAutocapture&&Cr(),(Pr=h$3.__PosthogExtensions__)==null||Pr.loadExternalDependency==null||Pr.loadExternalDependency(this.instance,"dead-clicks-autocapture",(Rr=>{Rr?Ke.error("failed to load script",Rr):Cr()}))}si(){var Cr;if(r$c){if(!this.ri&&(Cr=h$3.__PosthogExtensions__)!=null&&Cr.initDeadClicksAutocapture){var kr=O(this.instance.config.capture_dead_clicks)?this.instance.config.capture_dead_clicks:{};kr.__onCapture=this.onCapture,this.ri=h$3.__PosthogExtensions__.initDeadClicksAutocapture(this.instance,kr),this.ri.start(r$c),Ke.info("starting...")}}else Ke.error("`document` not found. Cannot start.")}stop(){this.ri&&(this.ri.stop(),this.ri=void 0,Ke.info("stopping..."))}}var tr=wi("[SegmentIntegration]"),ir="posthog-js";function er($,Cr){var{organization:kr,projectId:Pr,prefix:Rr,severityAllowList:Ir=["error"],sendExceptionsToPostHog:Fr=!0}=Cr===void 0?{}:Cr;return Lr=>{var qr,fa,pa,ga,xa;if(Ir!=="*"&&!Ir.includes(Lr.level)||!$.__loaded)return Lr;Lr.tags||(Lr.tags={});var ya=$.requestRouter.endpointFor("ui","/project/"+$.config.token+"/person/"+$.get_distinct_id());Lr.tags["PostHog Person URL"]=ya,$.sessionRecordingStarted()&&(Lr.tags["PostHog Recording URL"]=$.get_session_replay_url({withTimestamp:!0}));var ba,Aa=((qr=Lr.exception)==null?void 0:qr.values)||[],ka=Aa.map((Sa=>p$3({},Sa,{stacktrace:Sa.stacktrace?p$3({},Sa.stacktrace,{type:"raw",frames:(Sa.stacktrace.frames||[]).map((Ca=>p$3({},Ca,{platform:"web:javascript"})))}):void 0}))),Ea={$exception_message:((fa=Aa[0])==null?void 0:fa.value)||Lr.message,$exception_type:(pa=Aa[0])==null?void 0:pa.type,$exception_level:Lr.level,$exception_list:ka,$sentry_event_id:Lr.event_id,$sentry_exception:Lr.exception,$sentry_exception_message:((ga=Aa[0])==null?void 0:ga.value)||Lr.message,$sentry_exception_type:(xa=Aa[0])==null?void 0:xa.type,$sentry_tags:Lr.tags};return kr&&Pr&&(Ea.$sentry_url=(Rr||"https://sentry.io/organizations/")+kr+"/issues/?project="+Pr+"&query="+Lr.event_id),Fr&&((ba=$.exceptions)==null||ba.sendExceptionEvent(Ea)),Lr}}class rr{constructor(Cr,kr,Pr,Rr,Ir,Fr){this.name=ir,this.setupOnce=function(Lr){Lr(er(Cr,{organization:kr,projectId:Pr,prefix:Rr,severityAllowList:Ir,sendExceptionsToPostHog:Fr==null||Fr}))}}}class sr{constructor(Cr){this.oi=(kr,Pr,Rr)=>{Rr&&(Rr.noSessionId||Rr.activityTimeout||Rr.sessionPastMaximumLength)&&(yi.info("[PageViewManager] Session rotated, clearing pageview state",{sessionId:kr,changeReason:Rr}),this.ai=void 0,this._instance.scrollManager.resetContext())},this._instance=Cr,this.li()}li(){var Cr;this.ui=(Cr=this._instance.sessionManager)==null?void 0:Cr.onSessionId(this.oi)}destroy(){var Cr;(Cr=this.ui)==null||Cr.call(this),this.ui=void 0}doPageView(Cr,kr){var Pr,Rr=this.hi(Cr,kr);return this.ai={pathname:(Pr=t$a==null?void 0:t$a.location.pathname)!==null&&Pr!==void 0?Pr:"",pageViewId:kr,timestamp:Cr},this._instance.scrollManager.resetContext(),Rr}doPageLeave(Cr){var kr;return this.hi(Cr,(kr=this.ai)==null?void 0:kr.pageViewId)}doEvent(){var Cr;return{$pageview_id:(Cr=this.ai)==null?void 0:Cr.pageViewId}}hi(Cr,kr){var Pr=this.ai;if(!Pr)return{$pageview_id:kr};var Rr={$pageview_id:kr,$prev_pageview_id:Pr.pageViewId},Ir=this._instance.scrollManager.getContext();if(Ir&&!this._instance.config.disable_scroll_properties){var{maxScrollHeight:Fr,lastScrollY:Lr,maxScrollY:qr,maxContentHeight:fa,lastContentY:pa,maxContentY:ga}=Ir;if(!(C(Fr)||C(Lr)||C(qr)||C(fa)||C(pa)||C(ga))){Fr=Math.ceil(Fr),Lr=Math.ceil(Lr),qr=Math.ceil(qr),fa=Math.ceil(fa),pa=Math.ceil(pa),ga=Math.ceil(ga);var xa=Fr>1?Y(Lr/Fr,0,1,yi):1,ya=Fr>1?Y(qr/Fr,0,1,yi):1,ba=fa>1?Y(pa/fa,0,1,yi):1,Aa=fa>1?Y(ga/fa,0,1,yi):1;Rr=Se(Rr,{$prev_pageview_last_scroll:Lr,$prev_pageview_last_scroll_percentage:xa,$prev_pageview_max_scroll:qr,$prev_pageview_max_scroll_percentage:ya,$prev_pageview_last_content:pa,$prev_pageview_last_content_percentage:ba,$prev_pageview_max_content:ga,$prev_pageview_max_content_percentage:Aa})}}return Pr.pathname&&(Rr.$prev_pageview_pathname=Pr.pathname),Pr.timestamp&&(Rr.$prev_pageview_duration=(Cr.getTime()-Pr.timestamp.getTime())/1e3),Rr}}var nr=$=>{var Cr=r$c==null?void 0:r$c.createElement("a");return C(Cr)?null:(Cr.href=$,Cr)},or=function($,Cr){for(var kr,Pr=(($.split("#")[0]||"").split(/\?(.*)/)[1]||"").replace(/^\?+/g,"").split("&"),Rr=0;Pr.length>Rr;Rr++){var Ir=Pr[Rr].split("=");if(Ir[0]===Cr){kr=Ir;break}}if(!k(kr)||2>kr.length)return"";var Fr=kr[1];try{Fr=decodeURIComponent(Fr)}catch{yi.error("Skipping decoding for malformed query param: "+Fr)}return Fr.replace(/\+/g," ")},ar=function($,Cr,kr){if(!$||!Cr||!Cr.length)return $;for(var Pr=$.split("#"),Rr=Pr[1],Ir=(Pr[0]||"").split("?"),Fr=Ir[1],Lr=Ir[0],qr=(Fr||"").split("&"),fa=[],pa=0;qr.length>pa;pa++){var ga=qr[pa].split("=");k(ga)&&(Cr.includes(ga[0])?fa.push(ga[0]+"="+kr):fa.push(qr[pa]))}var xa=Lr;return Fr!=null&&(xa+="?"+fa.join("&")),Rr!=null&&(xa+="#"+Rr),xa},lr=function($,Cr){var kr=$.match(new RegExp(Cr+"=([^&]*)"));return kr?kr[1]:null},ur="https?://(.*)",hr=["gclid","gclsrc","dclid","gbraid","wbraid","fbclid","msclkid","twclid","li_fat_id","igshid","ttclid","rdt_cid","epik","qclid","sccid","irclid","_kx"],dr=["utm_source","utm_medium","utm_campaign","utm_content","utm_term","gad_source","mc_cid",...hr],vr="<masked>",cr=["li_fat_id"];function fr$1($,Cr,kr){if(!r$c)return{};var Pr,Rr=Cr?[...hr,...kr||[]]:[],Ir=pr(ar(r$c.URL,Rr,vr),$),Fr=(Pr={},Ee(cr,(function(Lr){var qr=ze.Gt(Lr);Pr[Lr]=qr||null})),Pr);return Se(Fr,Ir)}function pr($,Cr){var kr=dr.concat(Cr||[]),Pr={};return Ee(kr,(function(Rr){var Ir=or($,Rr);Pr[Rr]=Ir||null})),Pr}function _r($){var Cr=(function(Ir){return Ir?Ir.search(ur+"google.([^/?]*)")===0?"google":Ir.search(ur+"bing.com")===0?"bing":Ir.search(ur+"yahoo.com")===0?"yahoo":Ir.search(ur+"duckduckgo.com")===0?"duckduckgo":null:null})($),kr=Cr!="yahoo"?"q":"p",Pr={};if(!M$1(Cr)){Pr.$search_engine=Cr;var Rr=r$c?or(r$c.referrer,kr):"";Rr.length&&(Pr.ph_keyword=Rr)}return Pr}function gr(){return navigator.language||navigator.userLanguage}var mr="$direct";function br(){return(r$c==null?void 0:r$c.referrer)||mr}function yr($,Cr){var kr=$?[...hr,...Cr||[]]:[],Pr=s$d==null?void 0:s$d.href.substring(0,1e3);return{r:br().substring(0,1e3),u:Pr?ar(Pr,kr,vr):void 0}}function wr($){var Cr,{r:kr,u:Pr}=$,Rr={$referrer:kr,$referring_domain:kr==null?void 0:kr==mr?mr:(Cr=nr(kr))==null?void 0:Cr.host};if(Pr){Rr.$current_url=Pr;var Ir=nr(Pr);Rr.$host=Ir==null?void 0:Ir.host,Rr.$pathname=Ir==null?void 0:Ir.pathname;var Fr=pr(Pr);Se(Rr,Fr)}if(kr){var Lr=_r(kr);Se(Rr,Lr)}return Rr}function Er(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function Sr(){try{return new Date().getTimezoneOffset()}catch{return}}var xr=["cookie","localstorage","localstorage+cookie","sessionstorage","memory"];class Tr{constructor(Cr,kr){this.Rt=Cr,this.props={},this.ci=!1,this.di=(Pr=>{var Rr="";return Pr.token&&(Rr=Pr.token.replace(/\+/g,"PL").replace(/\//g,"SL").replace(/=/g,"EQ")),Pr.persistence_name?"ph_"+Pr.persistence_name:"ph_"+Rr+"_posthog"})(Cr),this.ti=this.vi(Cr),this.load(),Cr.debug&&yi.info("Persistence loaded",Cr.persistence,p$3({},this.props)),this.update_config(Cr,Cr,kr),this.save()}isDisabled(){return!!this.fi}vi(Cr){xr.indexOf(Cr.persistence.toLowerCase())===-1&&(yi.critical("Unknown persistence type "+Cr.persistence+"; falling back to localStorage+cookie"),Cr.persistence="localStorage+cookie");var kr=(function(Rr){Rr===void 0&&(Rr=[]);var Ir=[...qe,...Rr];return p$3({},He,{Wt(Fr){try{var Lr={};try{Lr=ze.Wt(Fr)||{}}catch{}var qr=Se(Lr,JSON.parse(He.Gt(Fr)||"{}"));return He.Xt(Fr,qr),qr}catch{}return null},Xt(Fr,Lr,qr,fa,pa,ga){try{He.Xt(Fr,Lr,void 0,void 0,ga);var xa={};Ir.forEach((ya=>{Lr[ya]&&(xa[ya]=Lr[ya])})),Object.keys(xa).length&&ze.Xt(Fr,xa,qr,fa,pa,ga)}catch(ya){He.Yt(ya)}},Jt(Fr,Lr){try{t$a==null||t$a.localStorage.removeItem(Fr),ze.Jt(Fr,Lr)}catch(qr){He.Yt(qr)}}})})(Cr.cookie_persisted_properties||[]),Pr=Cr.persistence.toLowerCase();return Pr==="localstorage"&&He.Ut()?He:Pr==="localstorage+cookie"&&kr.Ut()?kr:Pr==="sessionstorage"&&Ye.Ut()?Ye:Pr==="memory"?We:Pr==="cookie"?ze:kr.Ut()?kr:ze}pi(Cr){var kr=Cr??this.Rt.feature_flag_cache_ttl_ms;if(!kr||0>=kr)return!1;var Pr=this.props[Qi];return!Pr||typeof Pr!="number"||Date.now()-Pr>kr}properties(){var Cr={};return Ee(this.props,((kr,Pr)=>{if(Pr===ji&&O(kr)){if(!this.pi())for(var Rr=Object.keys(kr),Ir=0;Rr.length>Ir;Ir++)Cr["$feature/"+Rr[Ir]]=kr[Rr[Ir]]}else le.indexOf(Pr)===-1&&(Cr[Pr]=kr)})),Cr}load(){if(!this.fi){var Cr=this.ti.Wt(this.di);Cr&&(this.props=Se({},Cr))}}save(){this.fi||this.ti.Xt(this.di,this.props,this.gi,this.mi,this.yi,this.Rt.debug)}remove(){this.ti.Jt(this.di,!1),this.ti.Jt(this.di,!0)}clear(){this.remove(),this.props={}}register_once(Cr,kr,Pr){if(O(Cr)){C(kr)&&(kr="None"),this.gi=C(Pr)?this.bi:Pr;var Rr=!1;if(Ee(Cr,((Ir,Fr)=>{this.props.hasOwnProperty(Fr)&&this.props[Fr]!==kr||(this.props[Fr]=Ir,Rr=!0)})),Rr)return this.save(),!0}return!1}register(Cr,kr){if(O(Cr)){this.gi=C(kr)?this.bi:kr;var Pr=!1;if(Ee(Cr,((Rr,Ir)=>{Cr.hasOwnProperty(Ir)&&this.props[Ir]!==Rr&&(this.props[Ir]=Rr,Pr=!0)})),Pr)return this.save(),!0}return!1}unregister(Cr){Cr in this.props&&(delete this.props[Cr],this.save())}update_campaign_params(){if(!this.ci){var Cr=fr$1(this.Rt.custom_campaign_params,this.Rt.mask_personal_data_properties,this.Rt.custom_personal_data_properties);I$1(Re(Cr))||this.register(Cr),this.ci=!0}}update_search_keyword(){var Cr;this.register((Cr=r$c==null?void 0:r$c.referrer)?_r(Cr):{})}update_referrer_info(){var Cr;this.register_once({$referrer:br(),$referring_domain:r$c!=null&&r$c.referrer&&((Cr=nr(r$c.referrer))==null?void 0:Cr.host)||mr},void 0)}set_initial_person_info(){this.props[ee]||this.props[re$1]||this.register_once({[se]:yr(this.Rt.mask_personal_data_properties,this.Rt.custom_personal_data_properties)},void 0)}get_initial_props(){var Cr={};Ee([re$1,ee],(Fr=>{var Lr=this.props[Fr];Lr&&Ee(Lr,(function(qr,fa){Cr["$initial_"+S(fa)]=qr}))}));var kr,Pr,Rr=this.props[se];if(Rr){var Ir=(kr=wr(Rr),Pr={},Ee(kr,(function(Fr,Lr){Pr["$initial_"+S(Lr)]=Fr})),Pr);Se(Cr,Ir)}return Cr}safe_merge(Cr){return Ee(this.props,(function(kr,Pr){Pr in Cr||(Cr[Pr]=kr)})),Cr}update_config(Cr,kr,Pr){if(this.bi=this.gi=Cr.cookie_expiration,this.set_disabled(Cr.disable_persistence||!!Pr),this.set_cross_subdomain(Cr.cross_subdomain_cookie),this.set_secure(Cr.secure_cookie),Cr.persistence!==kr.persistence||!((Fr,Lr)=>{if(Fr.length!==Lr.length)return!1;var qr=[...Fr].sort(),fa=[...Lr].sort();return qr.every(((pa,ga)=>pa===fa[ga]))})(Cr.cookie_persisted_properties||[],kr.cookie_persisted_properties||[])){var Rr=this.vi(Cr),Ir=this.props;this.clear(),this.ti=Rr,this.props=Ir,this.save()}}set_disabled(Cr){this.fi=Cr,this.fi?this.remove():this.save()}set_cross_subdomain(Cr){Cr!==this.mi&&(this.mi=Cr,this.remove(),this.save())}set_secure(Cr){Cr!==this.yi&&(this.yi=Cr,this.remove(),this.save())}set_event_timer(Cr,kr){var Pr=this.props[Ri]||{};Pr[Cr]=kr,this.props[Ri]=Pr,this.save()}remove_event_timer(Cr){var kr=(this.props[Ri]||{})[Cr];return C(kr)||(delete this.props[Ri][Cr],this.save()),kr}get_property(Cr){return this.props[Cr]}set_property(Cr,kr){this.props[Cr]=kr,this.save()}}var $r={Activation:"events",Cancellation:"cancelEvents"},Or={Popover:"popover",API:"api",Widget:"widget"},Ar={SHOWN:"survey shown",DISMISSED:"survey dismissed",SENT:"survey sent"},Mr={SURVEY_ID:"$survey_id",SURVEY_ITERATION:"$survey_iteration",SURVEY_LAST_SEEN_DATE:"$survey_last_seen_date"},Dr={Popover:"popover",Inline:"inline"},Ur={SHOWN:"product tour shown"},Nr={TOUR_LAST_SEEN_DATE:"$product_tour_last_seen_date",TOUR_TYPE:"$product_tour_type"},jr=wi("[RateLimiter]");class zr{constructor(Cr){this.serverLimits={},this.lastEventRateLimited=!1,this.checkForLimiting=kr=>{var Pr=kr.text;if(Pr&&Pr.length)try{(JSON.parse(Pr).quota_limited||[]).forEach((Rr=>{jr.info((Rr||"events")+" is quota limited."),this.serverLimits[Rr]=new Date().getTime()+6e4}))}catch(Rr){return void jr.warn('could not rate limit - continuing. Error: "'+(Rr==null?void 0:Rr.message)+'"',{text:Pr})}},this.instance=Cr,this.lastEventRateLimited=this.clientRateLimitContext(!0).isRateLimited}get captureEventsPerSecond(){var Cr;return((Cr=this.instance.config.rate_limiting)==null?void 0:Cr.events_per_second)||10}get captureEventsBurstLimit(){var Cr;return Math.max(((Cr=this.instance.config.rate_limiting)==null?void 0:Cr.events_burst_limit)||10*this.captureEventsPerSecond,this.captureEventsPerSecond)}clientRateLimitContext(Cr){var kr,Pr,Rr;Cr===void 0&&(Cr=!1);var{captureEventsBurstLimit:Ir,captureEventsPerSecond:Fr}=this,Lr=new Date().getTime(),qr=(kr=(Pr=this.instance.persistence)==null?void 0:Pr.get_property(ie))!==null&&kr!==void 0?kr:{tokens:Ir,last:Lr};qr.tokens+=(Lr-qr.last)/1e3*Fr,qr.last=Lr,qr.tokens>Ir&&(qr.tokens=Ir);var fa=1>qr.tokens;return fa||Cr||(qr.tokens=Math.max(0,qr.tokens-1)),!fa||this.lastEventRateLimited||Cr||this.instance.capture("$$client_ingestion_warning",{$$client_ingestion_warning_message:"posthog-js client rate limited. Config is set to "+Fr+" events per second and "+Ir+" events burst limit."},{skip_client_rate_limiting:!0}),this.lastEventRateLimited=fa,(Rr=this.instance.persistence)==null||Rr.set_property(ie,qr),{isRateLimited:fa,remainingTokens:qr.tokens}}isServerRateLimited(Cr){var kr=this.serverLimits[Cr||"events"]||!1;return kr!==!1&&new Date().getTime()<kr}}var Br=wi("[RemoteConfig]");class Hr{constructor(Cr){this._instance=Cr}get remoteConfig(){var Cr;return(Cr=h$3._POSTHOG_REMOTE_CONFIG)==null||(Cr=Cr[this._instance.config.token])==null?void 0:Cr.config}wi(Cr){var kr,Pr;(kr=h$3.__PosthogExtensions__)!=null&&kr.loadExternalDependency?(Pr=h$3.__PosthogExtensions__)==null||Pr.loadExternalDependency==null||Pr.loadExternalDependency(this._instance,"remote-config",(()=>Cr(this.remoteConfig))):Cr()}Ii(Cr){this._instance._send_request({method:"GET",url:this._instance.requestRouter.endpointFor("assets","/array/"+this._instance.config.token+"/config"),callback(kr){Cr(kr.json)}})}load(){try{if(this.remoteConfig)return Br.info("Using preloaded remote config",this.remoteConfig),this.Ci(this.remoteConfig),void this.Si();if(this._instance.ki())return void Br.warn("Remote config is disabled. Falling back to local config.");this.wi((Cr=>{if(!Cr)return Br.info("No config found after loading remote JS config. Falling back to JSON."),void this.Ii((kr=>{this.Ci(kr),this.Si()}));this.Ci(Cr),this.Si()}))}catch(Cr){Br.error("Error loading remote config",Cr)}}stop(){this.xi&&(clearInterval(this.xi),this.xi=void 0)}refresh(){this._instance.ki()||(r$c==null?void 0:r$c.visibilityState)==="hidden"||this._instance.reloadFeatureFlags()}Si(){var Cr;if(!this.xi){var kr=(Cr=this._instance.config.remote_config_refresh_interval_ms)!==null&&Cr!==void 0?Cr:3e5;kr!==0&&(this.xi=setInterval((()=>{this.refresh()}),kr))}}Ci(Cr){var kr;Cr||Br.error("Failed to fetch remote config from PostHog."),this._instance.Ci(Cr??{}),(Cr==null?void 0:Cr.hasFeatureFlags)!==!1&&(this._instance.config.advanced_disable_feature_flags_on_first_load||(kr=this._instance.featureFlags)==null||kr.ensureFlagsLoaded())}}var Vr={GZipJS:"gzip-js",Base64:"base64"},Wr=Uint8Array,Gr=Uint16Array,Yr=Uint32Array,Jr=new Wr([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Kr=new Wr([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Xr=new Wr([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Qr=function($,Cr){for(var kr=new Gr(31),Pr=0;31>Pr;++Pr)kr[Pr]=Cr+=1<<$[Pr-1];var Rr=new Yr(kr[30]);for(Pr=1;30>Pr;++Pr)for(var Ir=kr[Pr];kr[Pr+1]>Ir;++Ir)Rr[Ir]=Ir-kr[Pr]<<5|Pr;return[kr,Rr]},Zr=Qr(Jr,2),ts=Zr[1];Zr[0][28]=258,ts[258]=28;for(var is=Qr(Kr,0)[1],es=new Gr(32768),rs=0;32768>rs;++rs){var ss=(43690&rs)>>>1|(21845&rs)<<1;es[rs]=((65280&(ss=(61680&(ss=(52428&ss)>>>2|(13107&ss)<<2))>>>4|(3855&ss)<<4))>>>8|(255&ss)<<8)>>>1}var ns=function($,Cr,kr){for(var Pr=$.length,Rr=0,Ir=new Gr(Cr);Pr>Rr;++Rr)++Ir[$[Rr]-1];var Fr,Lr=new Gr(Cr);for(Rr=0;Cr>Rr;++Rr)Lr[Rr]=Lr[Rr-1]+Ir[Rr-1]<<1;for(Fr=new Gr(Pr),Rr=0;Pr>Rr;++Rr)Fr[Rr]=es[Lr[$[Rr]-1]++]>>>15-$[Rr];return Fr},os=new Wr(288);for(rs=0;144>rs;++rs)os[rs]=8;for(rs=144;256>rs;++rs)os[rs]=9;for(rs=256;280>rs;++rs)os[rs]=7;for(rs=280;288>rs;++rs)os[rs]=8;var as=new Wr(32);for(rs=0;32>rs;++rs)as[rs]=5;var ls=ns(os,9),us=ns(as,5),hs=function($){return($/8>>0)+(7&$&&1)},ds=function($,Cr,kr){(kr==null||kr>$.length)&&(kr=$.length);var Pr=new($ instanceof Gr?Gr:$ instanceof Yr?Yr:Wr)(kr-Cr);return Pr.set($.subarray(Cr,kr)),Pr},vs=function($,Cr,kr){var Pr=Cr/8>>0;$[Pr]|=kr<<=7&Cr,$[Pr+1]|=kr>>>8},cs=function($,Cr,kr){var Pr=Cr/8>>0;$[Pr]|=kr<<=7&Cr,$[Pr+1]|=kr>>>8,$[Pr+2]|=kr>>>16},fs=function($,Cr){for(var kr=[],Pr=0;$.length>Pr;++Pr)$[Pr]&&kr.push({s:Pr,f:$[Pr]});var Rr=kr.length,Ir=kr.slice();if(!Rr)return[new Wr(0),0];if(Rr==1){var Fr=new Wr(kr[0].s+1);return Fr[kr[0].s]=1,[Fr,1]}kr.sort((function(Ia,Ra){return Ia.f-Ra.f})),kr.push({s:-1,f:25001});var Lr=kr[0],qr=kr[1],fa=0,pa=1,ga=2;for(kr[0]={s:-1,f:Lr.f+qr.f,l:Lr,r:qr};pa!=Rr-1;)Lr=kr[kr[ga].f>kr[fa].f?fa++:ga++],qr=kr[fa!=pa&&kr[ga].f>kr[fa].f?fa++:ga++],kr[pa++]={s:-1,f:Lr.f+qr.f,l:Lr,r:qr};var xa=Ir[0].s;for(Pr=1;Rr>Pr;++Pr)Ir[Pr].s>xa&&(xa=Ir[Pr].s);var ya=new Gr(xa+1),ba=ps(kr[pa-1],ya,0);if(ba>Cr){Pr=0;var Aa=0,ka=ba-Cr,Ea=1<<ka;for(Ir.sort((function(Ia,Ra){return ya[Ra.s]-ya[Ia.s]||Ia.f-Ra.f}));Rr>Pr;++Pr){var Sa=Ir[Pr].s;if(Cr>=ya[Sa])break;Aa+=Ea-(1<<ba-ya[Sa]),ya[Sa]=Cr}for(Aa>>>=ka;Aa>0;){var Ca=Ir[Pr].s;Cr>ya[Ca]?Aa-=1<<Cr-ya[Ca]++-1:++Pr}for(;Pr>=0&&Aa;--Pr){var Ta=Ir[Pr].s;ya[Ta]==Cr&&(--ya[Ta],++Aa)}ba=Cr}return[new Wr(ya),ba]},ps=function($,Cr,kr){return $.s==-1?Math.max(ps($.l,Cr,kr+1),ps($.r,Cr,kr+1)):Cr[$.s]=kr},_s=function($){for(var Cr=$.length;Cr&&!$[--Cr];);for(var kr=new Gr(++Cr),Pr=0,Rr=$[0],Ir=1,Fr=function(qr){kr[Pr++]=qr},Lr=1;Cr>=Lr;++Lr)if($[Lr]==Rr&&Lr!=Cr)++Ir;else{if(!Rr&&Ir>2){for(;Ir>138;Ir-=138)Fr(32754);Ir>2&&(Fr(Ir>10?Ir-11<<5|28690:Ir-3<<5|12305),Ir=0)}else if(Ir>3){for(Fr(Rr),--Ir;Ir>6;Ir-=6)Fr(8304);Ir>2&&(Fr(Ir-3<<5|8208),Ir=0)}for(;Ir--;)Fr(Rr);Ir=1,Rr=$[Lr]}return[kr.subarray(0,Pr),Cr]},gs=function($,Cr){for(var kr=0,Pr=0;Cr.length>Pr;++Pr)kr+=$[Pr]*Cr[Pr];return kr},ms=function($,Cr,kr){var Pr=kr.length,Rr=hs(Cr+2);$[Rr]=255&Pr,$[Rr+1]=Pr>>>8,$[Rr+2]=255^$[Rr],$[Rr+3]=255^$[Rr+1];for(var Ir=0;Pr>Ir;++Ir)$[Rr+Ir+4]=kr[Ir];return 8*(Rr+4+Pr)},bs=function($,Cr,kr,Pr,Rr,Ir,Fr,Lr,qr,fa,pa){vs(Cr,pa++,kr),++Rr[256];for(var ga=fs(Rr,15),xa=ga[0],ya=ga[1],ba=fs(Ir,15),Aa=ba[0],ka=ba[1],Ea=_s(xa),Sa=Ea[0],Ca=Ea[1],Ta=_s(Aa),Ia=Ta[0],Ra=Ta[1],ja=new Gr(19),Oa=0;Sa.length>Oa;++Oa)ja[31&Sa[Oa]]++;for(Oa=0;Ia.length>Oa;++Oa)ja[31&Ia[Oa]]++;for(var La=fs(ja,7),Ha=La[0],Wa=La[1],Ja=19;Ja>4&&!Ha[Xr[Ja-1]];--Ja);var Ya,Za,Qa,Na,Ka=fa+5<<3,Fa=gs(Rr,os)+gs(Ir,as)+Fr,Va=gs(Rr,xa)+gs(Ir,Aa)+Fr+14+3*Ja+gs(ja,Ha)+(2*ja[16]+3*ja[17]+7*ja[18]);if(Fa>=Ka&&Va>=Ka)return ms(Cr,pa,$.subarray(qr,qr+fa));if(vs(Cr,pa,1+(Fa>Va)),pa+=2,Fa>Va){Ya=ns(xa,ya),Za=xa,Qa=ns(Aa,ka),Na=Aa;var Da=ns(Ha,Wa);for(vs(Cr,pa,Ca-257),vs(Cr,pa+5,Ra-1),vs(Cr,pa+10,Ja-4),pa+=14,Oa=0;Ja>Oa;++Oa)vs(Cr,pa+3*Oa,Ha[Xr[Oa]]);pa+=3*Ja;for(var Ba=[Sa,Ia],Ga=0;2>Ga;++Ga){var Ua=Ba[Ga];for(Oa=0;Ua.length>Oa;++Oa)vs(Cr,pa,Da[qa=31&Ua[Oa]]),pa+=Ha[qa],qa>15&&(vs(Cr,pa,Ua[Oa]>>>5&127),pa+=Ua[Oa]>>>12)}}else Ya=ls,Za=os,Qa=us,Na=as;for(Oa=0;Lr>Oa;++Oa)if(Pr[Oa]>255){var qa;cs(Cr,pa,Ya[257+(qa=Pr[Oa]>>>18&31)]),pa+=Za[qa+257],qa>7&&(vs(Cr,pa,Pr[Oa]>>>23&31),pa+=Jr[qa]);var $a=31&Pr[Oa];cs(Cr,pa,Qa[$a]),pa+=Na[$a],$a>3&&(cs(Cr,pa,Pr[Oa]>>>5&8191),pa+=Kr[$a])}else cs(Cr,pa,Ya[Pr[Oa]]),pa+=Za[Pr[Oa]];return cs(Cr,pa,Ya[256]),pa+Za[256]},ys=new Yr([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),ws=(function(){for(var $=new Yr(256),Cr=0;256>Cr;++Cr){for(var kr=Cr,Pr=9;--Pr;)kr=(1&kr&&3988292384)^kr>>>1;$[Cr]=kr}return $})(),Es=function($,Cr,kr){for(;kr;++Cr)$[Cr]=kr,kr>>>=8};function Ss($,Cr){Cr===void 0&&(Cr={});var kr=(function(){var ga=4294967295;return{p(xa){for(var ya=ga,ba=0;xa.length>ba;++ba)ya=ws[255&ya^xa[ba]]^ya>>>8;ga=ya},d(){return 4294967295^ga}}})(),Pr=$.length;kr.p($);var Rr,Ir,Fr,Lr,qr,fa=(Lr=10+((Rr=Cr).filename&&Rr.filename.length+1||0),qr=8,(function(ga,xa,ya,ba,Aa,ka){var Ea=ga.length,Sa=new Wr(ba+Ea+5*(1+Math.floor(Ea/7e3))+Aa),Ca=Sa.subarray(ba,Sa.length-Aa),Ta=0;if(!xa||8>Ea)for(var Ia=0;Ea>=Ia;Ia+=65535){var Ra=Ia+65535;Ea>Ra?Ta=ms(Ca,Ta,ga.subarray(Ia,Ra)):(Ca[Ia]=!0,Ta=ms(Ca,Ta,ga.subarray(Ia,Ea)))}else{for(var ja=ys[xa-1],Oa=ja>>>13,La=8191&ja,Ha=(1<<ya)-1,Wa=new Gr(32768),Ja=new Gr(Ha+1),Ya=Math.ceil(ya/3),Za=2*Ya,Qa=function(Dl){return(ga[Dl]^ga[Dl+1]<<Ya^ga[Dl+2]<<Za)&Ha},Na=new Yr(25e3),Ka=new Gr(288),Fa=new Gr(32),Va=0,Da=0,Ba=(Ia=0,0),Ga=0,Ua=0;Ea>Ia;++Ia){var qa=Qa(Ia),$a=32767&Ia,tl=Ja[qa];if(Wa[$a]=tl,Ja[qa]=$a,Ia>=Ga){var ll=Ea-Ia;if((Va>7e3||Ba>24576)&&ll>423){Ta=bs(ga,Ca,0,Na,Ka,Fa,Da,Ba,Ua,Ia-Ua,Ta),Ba=Va=Da=0,Ua=Ia;for(var ol=0;286>ol;++ol)Ka[ol]=0;for(ol=0;30>ol;++ol)Fa[ol]=0}var _a=2,nl=0,il=La,ul=$a-tl&32767;if(ll>2&&qa==Qa(Ia-ul))for(var sl=Math.min(Oa,ll)-1,rl=Math.min(32767,Ia),xl=Math.min(258,ll);rl>=ul&&--il&&$a!=tl;){if(ga[Ia+_a]==ga[Ia+_a-ul]){for(var El=0;xl>El&&ga[Ia+El]==ga[Ia+El-ul];++El);if(El>_a){if(_a=El,nl=ul,El>sl)break;var Cl=Math.min(ul,El-2),Ml=0;for(ol=0;Cl>ol;++ol){var hl=Ia-ul+ol+32768&32767,yl=hl-Wa[hl]+32768&32767;yl>Ml&&(Ml=yl,tl=hl)}}}ul+=($a=tl)-(tl=Wa[$a])+32768&32767}if(nl){Na[Ba++]=268435456|ts[_a]<<18|is[nl];var Tl=31&ts[_a],jl=31&is[nl];Da+=Jr[Tl]+Kr[jl],++Ka[257+Tl],++Fa[jl],Ga=Ia+_a,++Va}else Na[Ba++]=ga[Ia],++Ka[ga[Ia]]}}Ta=bs(ga,Ca,!0,Na,Ka,Fa,Da,Ba,Ua,Ia-Ua,Ta)}return ds(Sa,0,ba+hs(Ta)+Aa)})(Ir=$,(Fr=Cr).level==null?6:Fr.level,Fr.mem==null?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(Ir.length)))):12+Fr.mem,Lr,qr)),pa=fa.length;return(function(ga,xa){var ya=xa.filename;if(ga[0]=31,ga[1]=139,ga[2]=8,ga[8]=2>xa.level?4:xa.level==9?2:0,ga[9]=3,xa.mtime!=0&&Es(ga,4,Math.floor(new Date(xa.mtime||Date.now())/1e3)),ya){ga[3]=8;for(var ba=0;ya.length>=ba;++ba)ga[ba+10]=ya.charCodeAt(ba)}})(fa,Cr),Es(fa,pa-8,kr.d()),Es(fa,pa-4,Pr),fa}var xs=!!o$d||!!n$9,Ts="text/plain",$s=!1,Rs=function($,Cr,kr){var Pr;kr===void 0&&(kr=!0);var[Rr,Ir]=$.split("?"),Fr=p$3({},Cr),Lr=(Pr=Ir==null?void 0:Ir.split("&").map((fa=>{var pa,[ga,xa]=fa.split("="),ya=kr&&(pa=Fr[ga])!==null&&pa!==void 0?pa:xa;return delete Fr[ga],ga+"="+ya})))!==null&&Pr!==void 0?Pr:[],qr=(function(fa,pa){var ga,xa;pa===void 0&&(pa="&");var ya=[];return Ee(fa,(function(ba,Aa){C(ba)||C(Aa)||Aa==="undefined"||(ga=encodeURIComponent((ka=>ka instanceof File)(ba)?ba.name:ba.toString()),xa=encodeURIComponent(Aa),ya[ya.length]=xa+"="+ga)})),ya.join(pa)})(Fr);return qr&&Lr.push(qr),Rr+"?"+Lr.join("&")},ks=($,Cr)=>JSON.stringify($,((kr,Pr)=>typeof Pr=="bigint"?Pr.toString():Pr),Cr),Ps=$=>{if($.zt)return $.zt;var{data:Cr,compression:kr}=$;if(Cr){if(kr===Vr.GZipJS){var Pr=Ss((function(Lr,qr){var fa=Lr.length;if(typeof TextEncoder<"u")return new TextEncoder().encode(Lr);for(var pa=new Wr(Lr.length+(Lr.length>>>1)),ga=0,xa=function(ka){pa[ga++]=ka},ya=0;fa>ya;++ya){if(ga+5>pa.length){var ba=new Wr(ga+8+(fa-ya<<1));ba.set(pa),pa=ba}var Aa=Lr.charCodeAt(ya);128>Aa?xa(Aa):2048>Aa?(xa(192|Aa>>>6),xa(128|63&Aa)):Aa>55295&&57344>Aa?(xa(240|(Aa=65536+(1047552&Aa)|1023&Lr.charCodeAt(++ya))>>>18),xa(128|Aa>>>12&63),xa(128|Aa>>>6&63),xa(128|63&Aa)):(xa(224|Aa>>>12),xa(128|Aa>>>6&63),xa(128|63&Aa))}return ds(pa,0,ga)})(ks(Cr)),{mtime:0});return{contentType:Ts,body:Pr.buffer.slice(Pr.byteOffset,Pr.byteOffset+Pr.byteLength),estimatedSize:Pr.byteLength}}if(kr===Vr.Base64){var Rr=(function(Lr){return Lr&&btoa(encodeURIComponent(Lr).replace(/%([0-9A-F]{2})/g,((qr,fa)=>String.fromCharCode(parseInt(fa,16)))))})(ks(Cr)),Ir=(Lr=>"data="+encodeURIComponent(typeof Lr=="string"?Lr:ks(Lr)))(Rr);return{contentType:"application/x-www-form-urlencoded",body:Ir,estimatedSize:new Blob([Ir]).size}}var Fr=ks(Cr);return{contentType:"application/json",body:Fr,estimatedSize:new Blob([Fr]).size}}},Os=(function(){var $=f$2((function*(Cr){var kr=ks(Cr.data),Pr=yield(function(Ir,Fr,Lr){return g$1.apply(this,arguments)})(kr,v$1.DEBUG,{rethrow:!0});if(!Pr)return Cr;var Rr=yield Pr.arrayBuffer();return p$3({},Cr,{zt:{contentType:Ts,body:Rr,estimatedSize:Rr.byteLength}})}));return function(Cr){return $.apply(this,arguments)}})(),Is=($,Cr)=>Rs($,{_:new Date().getTime().toString(),ver:v$1.JS_SDK_VERSION,compression:Cr}),Cs=[];n$9&&Cs.push({transport:"fetch",method($){var Cr,kr,{contentType:Pr,body:Rr,estimatedSize:Ir}=(Cr=Ps($))!==null&&Cr!==void 0?Cr:{},Fr=new Headers;Ee($.headers,(function(pa,ga){Fr.append(ga,pa)})),Pr&&Fr.append("Content-Type",Pr);var Lr=$.url,qr=null;if(a$h){var fa=new a$h;qr={signal:fa.signal,timeout:setTimeout((()=>fa.abort()),$.timeout)}}n$9(Lr,p$3({method:($==null?void 0:$.method)||"GET",headers:Fr,keepalive:$.method==="POST"&&52428.8>(Ir||0),body:Rr,signal:(kr=qr)==null?void 0:kr.signal},$.fetchOptions)).then((pa=>pa.text().then((ga=>{var xa={statusCode:pa.status,text:ga};if(pa.status===200)try{xa.json=JSON.parse(ga)}catch(ya){yi.error(ya)}$.callback==null||$.callback(xa)})))).catch((pa=>{yi.error(pa),$.callback==null||$.callback({statusCode:0,error:pa})})).finally((()=>qr?clearTimeout(qr.timeout):null))}}),o$d&&Cs.push({transport:"XHR",method($){var Cr,kr=new o$d;kr.open($.method||"GET",$.url,!0);var{contentType:Pr,body:Rr}=(Cr=Ps($))!==null&&Cr!==void 0?Cr:{};Ee($.headers,(function(Ir,Fr){kr.setRequestHeader(Fr,Ir)})),Pr&&kr.setRequestHeader("Content-Type",Pr),$.timeout&&(kr.timeout=$.timeout),$.disableXHRCredentials||(kr.withCredentials=!0),kr.onreadystatechange=()=>{if(kr.readyState===4){var Ir={statusCode:kr.status,text:kr.responseText};if(kr.status===200)try{Ir.json=JSON.parse(kr.responseText)}catch{}$.callback==null||$.callback(Ir)}},kr.send(Rr)}}),e$n!=null&&e$n.sendBeacon&&Cs.push({transport:"sendBeacon",method($){var Cr=Rs($.url,{beacon:"1"});try{var kr,{contentType:Pr,body:Rr}=(kr=Ps($))!==null&&kr!==void 0?kr:{};if(!Rr)return;var Ir=Rr instanceof Blob?Rr:new Blob([Rr],{type:Pr});e$n.sendBeacon(Cr,Ir)}catch{}}});var Fs=3e3;class As{constructor(Cr,kr){this.Ti=!0,this.Ai=[],this.Ei=Y((kr==null?void 0:kr.flush_interval_ms)||Fs,250,5e3,yi.createLogger("flush interval"),Fs),this.Ri=Cr}enqueue(Cr){this.Ai.push(Cr),this.Ni||this.Mi()}unload(){this.Fi();var Cr=this.Ai.length>0?this.Oi():{},kr=Object.values(Cr);[...kr.filter((Pr=>Pr.url.indexOf("/e")===0)),...kr.filter((Pr=>Pr.url.indexOf("/e")!==0))].map((Pr=>{this.Ri(p$3({},Pr,{transport:"sendBeacon"}))}))}enable(){this.Ti=!1,this.Mi()}Mi(){var Cr=this;this.Ti||(this.Ni=setTimeout((()=>{if(this.Fi(),this.Ai.length>0){var kr=this.Oi(),Pr=function(){var Ir=kr[Rr],Fr=new Date().getTime();Ir.data&&k(Ir.data)&&Ee(Ir.data,(Lr=>{Lr.offset=Math.abs(Lr.timestamp-Fr),delete Lr.timestamp})),Cr.Ri(Ir)};for(var Rr in kr)Pr()}}),this.Ei))}Fi(){clearTimeout(this.Ni),this.Ni=void 0}Oi(){var Cr={};return Ee(this.Ai,(kr=>{var Pr,Rr=kr,Ir=(Rr?Rr.batchKey:null)||Rr.url;C(Cr[Ir])&&(Cr[Ir]=p$3({},Rr,{data:[]})),(Pr=Cr[Ir].data)==null||Pr.push(Rr.data)})),this.Ai=[],Cr}}var Ms=["retriesPerformedSoFar"];class Ds{constructor(Cr){this.Pi=!1,this.Li=3e3,this.Ai=[],this._instance=Cr,this.Ai=[],this.Di=!0,!C(t$a)&&"onLine"in t$a.navigator&&(this.Di=t$a.navigator.onLine,this.Bi=()=>{this.Di=!0,this.ji()},this.qi=()=>{this.Di=!1},Oe(t$a,"online",this.Bi),Oe(t$a,"offline",this.qi))}get length(){return this.Ai.length}retriableRequest(Cr){var{retriesPerformedSoFar:kr}=Cr,Pr=_$2(Cr,Ms);U(kr)&&(Pr.url=Rs(Pr.url,{retry_count:kr})),this._instance._send_request(p$3({},Pr,{callback:Rr=>{Rr.statusCode===200||Rr.statusCode>=400&&500>Rr.statusCode||(kr??0)>=10?Pr.callback==null||Pr.callback(Rr):this.Zi(p$3({retriesPerformedSoFar:kr},Pr))}}))}Zi(Cr){var kr=Cr.retriesPerformedSoFar||0;Cr.retriesPerformedSoFar=kr+1;var Pr=(function(Fr){var Lr=3e3*Math.pow(2,Fr),qr=Lr/2,fa=Math.min(18e5,Lr),pa=Math.random()-.5;return Math.ceil(fa+pa*(fa-qr))})(kr),Rr=Date.now()+Pr;this.Ai.push({retryAt:Rr,requestOptions:Cr});var Ir="Enqueued failed request for retry in "+Pr;navigator.onLine||(Ir+=" (Browser is offline)"),yi.warn(Ir),this.Pi||(this.Pi=!0,this.$i())}$i(){if(this.Vi&&clearTimeout(this.Vi),this.Ai.length===0)return this.Pi=!1,void(this.Vi=void 0);this.Vi=setTimeout((()=>{this.Di&&this.Ai.length>0&&this.ji(),this.$i()}),this.Li)}ji(){var Cr=Date.now(),kr=[],Pr=this.Ai.filter((Ir=>Cr>Ir.retryAt||(kr.push(Ir),!1)));if(this.Ai=kr,Pr.length>0)for(var{requestOptions:Rr}of Pr)this.retriableRequest(Rr)}unload(){for(var{requestOptions:Cr}of(this.Vi&&(clearTimeout(this.Vi),this.Vi=void 0),this.Pi=!1,C(t$a)||(this.Bi&&(t$a.removeEventListener("online",this.Bi),this.Bi=void 0),this.qi&&(t$a.removeEventListener("offline",this.qi),this.qi=void 0)),this.Ai))try{this._instance._send_request(p$3({},Cr,{transport:"sendBeacon"}))}catch(kr){yi.error(kr)}this.Ai=[]}}class Ls{constructor(Cr){this.Hi=()=>{var kr,Pr,Rr,Ir;this.zi||(this.zi={});var Fr=this.scrollElement(),Lr=this.scrollY(),qr=Fr?Math.max(0,Fr.scrollHeight-Fr.clientHeight):0,fa=Lr+((Fr==null?void 0:Fr.clientHeight)||0),pa=(Fr==null?void 0:Fr.scrollHeight)||0;this.zi.lastScrollY=Math.ceil(Lr),this.zi.maxScrollY=Math.max(Lr,(kr=this.zi.maxScrollY)!==null&&kr!==void 0?kr:0),this.zi.maxScrollHeight=Math.max(qr,(Pr=this.zi.maxScrollHeight)!==null&&Pr!==void 0?Pr:0),this.zi.lastContentY=fa,this.zi.maxContentY=Math.max(fa,(Rr=this.zi.maxContentY)!==null&&Rr!==void 0?Rr:0),this.zi.maxContentHeight=Math.max(pa,(Ir=this.zi.maxContentHeight)!==null&&Ir!==void 0?Ir:0)},this._instance=Cr}get Ui(){return this._instance.config.scroll_root_selector}getContext(){return this.zi}resetContext(){var Cr=this.zi;return setTimeout(this.Hi,0),Cr}startMeasuringScrollPosition(){Oe(t$a,"scroll",this.Hi,{capture:!0}),Oe(t$a,"scrollend",this.Hi,{capture:!0}),Oe(t$a,"resize",this.Hi)}scrollElement(){if(!this.Ui)return t$a==null?void 0:t$a.document.documentElement;var Cr=k(this.Ui)?this.Ui:[this.Ui];for(var kr of Cr){var Pr=t$a==null?void 0:t$a.document.querySelector(kr);if(Pr)return Pr}}scrollY(){if(this.Ui){var Cr=this.scrollElement();return Cr&&Cr.scrollTop||0}return t$a&&(t$a.scrollY||t$a.pageYOffset||t$a.document.documentElement.scrollTop)||0}scrollX(){if(this.Ui){var Cr=this.scrollElement();return Cr&&Cr.scrollLeft||0}return t$a&&(t$a.scrollX||t$a.pageXOffset||t$a.document.documentElement.scrollLeft)||0}}var Us=$=>yr($==null?void 0:$.config.mask_personal_data_properties,$==null?void 0:$.config.custom_personal_data_properties);class Ns{constructor(Cr,kr,Pr,Rr){this.Yi=Ir=>{var Fr=this.Gi();if(!Fr||Fr.sessionId!==Ir){var Lr={sessionId:Ir,props:this.Wi(this._instance)};this.Xi.register({[te]:Lr})}},this._instance=Cr,this.Ji=kr,this.Xi=Pr,this.Wi=Rr||Us,this.Ji.onSessionId(this.Yi)}Gi(){return this.Xi.props[te]}getSetOnceProps(){var Cr,kr=(Cr=this.Gi())==null?void 0:Cr.props;return kr?"r"in kr?wr(kr):{$referring_domain:kr.referringDomain,$pathname:kr.initialPathName,utm_source:kr.utm_source,utm_campaign:kr.utm_campaign,utm_medium:kr.utm_medium,utm_content:kr.utm_content,utm_term:kr.utm_term}:{}}getSessionProps(){var Cr={};return Ee(Re(this.getSetOnceProps()),((kr,Pr)=>{Pr==="$current_url"&&(Pr="url"),Cr["$session_entry_"+S(Pr)]=kr})),Cr}}class js{constructor(){this.Ki={}}on(Cr,kr){return this.Ki[Cr]||(this.Ki[Cr]=[]),this.Ki[Cr].push(kr),()=>{this.Ki[Cr]=this.Ki[Cr].filter((Pr=>Pr!==kr))}}emit(Cr,kr){for(var Pr of this.Ki[Cr]||[])Pr(kr);for(var Rr of this.Ki["*"]||[])Rr(Cr,kr)}}var zs=wi("[SessionId]");class Bs{on(Cr,kr){return this.Qi.on(Cr,kr)}constructor(Cr,kr,Pr){var Rr;if(this.tr=[],this.er=void 0,this.Qi=new js,this.ir=(fa,pa)=>!(!U(fa)||!U(pa))&&Math.abs(fa-pa)>this.sessionTimeoutMs,!Cr.persistence)throw new Error("SessionIdManager requires a PostHogPersistence instance");if(Cr.config.cookieless_mode===de)throw new Error('SessionIdManager cannot be used with cookieless_mode="always"');this.Rt=Cr.config,this.Xi=Cr.persistence,this.rr=void 0,this.nr=void 0,this._sessionStartTimestamp=null,this._sessionActivityTimestamp=null,this.sr=kr||Le,this.ar=Pr||Le;var Ir=this.Rt.persistence_name||this.Rt.token;if(this._sessionTimeoutMs=1e3*Y(this.Rt.session_idle_timeout_seconds||1800,60,36e3,zs.createLogger("session_idle_timeout_seconds"),1800),Cr.register({$configured_session_timeout_ms:this._sessionTimeoutMs}),this.lr(),this.ur="ph_"+Ir+"_window_id",this.hr="ph_"+Ir+"_primary_window_exists",this.cr()){var Fr=Ye.Wt(this.ur),Lr=Ye.Wt(this.hr);Fr&&!Lr?this.rr=Fr:Ye.Jt(this.ur),Ye.Xt(this.hr,!0)}if((Rr=this.Rt.bootstrap)!=null&&Rr.sessionID)try{var qr=(fa=>{var pa=this.Rt.bootstrap.sessionID.replace(/-/g,"");if(pa.length!==32)throw new Error("Not a valid UUID");if(pa[12]!=="7")throw new Error("Not a UUIDv7");return parseInt(pa.substring(0,12),16)})();this.dr(this.Rt.bootstrap.sessionID,new Date().getTime(),qr)}catch(fa){zs.error("Invalid sessionID in bootstrap",fa)}this.vr()}get sessionTimeoutMs(){return this._sessionTimeoutMs}onSessionId(Cr){return C(this.tr)&&(this.tr=[]),this.tr.push(Cr),this.nr&&Cr(this.nr,this.rr),()=>{this.tr=this.tr.filter((kr=>kr!==Cr))}}cr(){return this.Rt.persistence!=="memory"&&!this.Xi.fi&&Ye.Ut()}pr(Cr){Cr!==this.rr&&(this.rr=Cr,this.cr()&&Ye.Xt(this.ur,Cr))}gr(){return this.rr?this.rr:this.cr()?Ye.Wt(this.ur):null}dr(Cr,kr,Pr){Cr===this.nr&&kr===this._sessionActivityTimestamp&&Pr===this._sessionStartTimestamp||(this._sessionStartTimestamp=Pr,this._sessionActivityTimestamp=kr,this.nr=Cr,this.Xi.register({[Ui]:[kr,Cr,Pr]}))}mr(){var Cr=this.Xi.props[Ui];return k(Cr)&&Cr.length===2&&Cr.push(Cr[0]),Cr||[0,null,0]}resetSessionId(){this.dr(null,null,null)}destroy(){clearTimeout(this.yr),this.yr=void 0,this.er&&t$a&&(t$a.removeEventListener(_e,this.er,{capture:!1}),this.er=void 0),this.tr=[]}vr(){this.er=()=>{this.cr()&&Ye.Jt(this.hr)},Oe(t$a,_e,this.er,{capture:!1})}checkAndGetSessionAndWindowId(Cr,kr){if(Cr===void 0&&(Cr=!1),kr===void 0&&(kr=null),this.Rt.cookieless_mode===de)throw new Error('checkAndGetSessionAndWindowId should not be called with cookieless_mode="always"');var Pr=kr||new Date().getTime(),[Rr,Ir,Fr]=this.mr(),Lr=this.gr(),qr=U(Fr)&&Math.abs(Pr-Fr)>864e5,fa=!1,pa=!Ir,ga=!pa&&!Cr&&this.ir(Pr,Rr);pa||ga||qr?(Ir=this.sr(),Lr=this.ar(),zs.info("new session ID generated",{sessionId:Ir,windowId:Lr,changeReason:{noSessionId:pa,activityTimeout:ga,sessionPastMaximumLength:qr}}),Fr=Pr,fa=!0):Lr||(Lr=this.ar(),fa=!0);var xa=U(Rr)&&Cr&&!qr?Rr:Pr,ya=U(Fr)?Fr:new Date().getTime();return this.pr(Lr),this.dr(Ir,xa,ya),Cr||this.lr(),fa&&this.tr.forEach((ba=>ba(Ir,Lr,fa?{noSessionId:pa,activityTimeout:ga,sessionPastMaximumLength:qr}:void 0))),{sessionId:Ir,windowId:Lr,sessionStartTimestamp:ya,changeReason:fa?{noSessionId:pa,activityTimeout:ga,sessionPastMaximumLength:qr}:void 0,lastActivityTimestamp:Rr}}lr(){clearTimeout(this.yr),this.yr=setTimeout((()=>{var[Cr]=this.mr();if(this.ir(new Date().getTime(),Cr)){var kr=this.nr;this.resetSessionId(),this.Qi.emit("forcedIdleReset",{idleSessionId:kr})}}),1.1*this.sessionTimeoutMs)}}var Hs=function($,Cr){if(!$)return!1;var kr=$.userAgent;if(kr&&y(kr,Cr))return!0;try{var Pr=$==null?void 0:$.userAgentData;if(Pr!=null&&Pr.brands&&Pr.brands.some((Rr=>y(Rr==null?void 0:Rr.brand,Cr))))return!0}catch{}return!!$.webdriver},qs=function($,Cr){if(!(function(kr){try{new RegExp(kr)}catch{return!1}return!0})(Cr))return!1;try{return new RegExp(Cr).test($)}catch{return!1}};function Vs($,Cr,kr){return ks({distinct_id:$,userPropertiesToSet:Cr,userPropertiesToSetOnce:kr})}var Ws={exact:($,Cr)=>Cr.some((kr=>$.some((Pr=>kr===Pr)))),is_not:($,Cr)=>Cr.every((kr=>$.every((Pr=>kr!==Pr)))),regex:($,Cr)=>Cr.some((kr=>$.some((Pr=>qs(kr,Pr))))),not_regex:($,Cr)=>Cr.every((kr=>$.every((Pr=>!qs(kr,Pr))))),icontains:($,Cr)=>Cr.map(Gs).some((kr=>$.map(Gs).some((Pr=>kr.includes(Pr))))),not_icontains:($,Cr)=>Cr.map(Gs).every((kr=>$.map(Gs).every((Pr=>!kr.includes(Pr))))),gt:($,Cr)=>Cr.some((kr=>{var Pr=parseFloat(kr);return!isNaN(Pr)&&$.some((Rr=>Pr>parseFloat(Rr)))})),lt:($,Cr)=>Cr.some((kr=>{var Pr=parseFloat(kr);return!isNaN(Pr)&&$.some((Rr=>Pr<parseFloat(Rr)))}))},Gs=$=>$.toLowerCase();function Ys($,Cr){return!$||Object.entries($).every((kr=>{var[Pr,Rr]=kr,Ir=Cr==null?void 0:Cr[Pr];if(C(Ir)||M$1(Ir))return!1;var Fr=[String(Ir)],Lr=Ws[Rr.operator];return!!Lr&&Lr(Rr.values,Fr)}))}var Js="custom",Ks="i.posthog.com",Xs=/^\/static\//;class Qs{constructor(Cr){this.br={},this.instance=Cr}get apiHost(){var Cr=this.instance.config.api_host.trim().replace(/\/$/,"");return Cr==="https://app.posthog.com"?"https://us.i.posthog.com":Cr}get flagsApiHost(){var Cr=this.instance.config.flags_api_host;return Cr?Cr.trim().replace(/\/$/,""):this.apiHost}get uiHost(){var Cr,kr=(Cr=this.instance.config.ui_host)==null?void 0:Cr.replace(/\/$/,"");return kr||(kr=this.apiHost.replace("."+Ks,".posthog.com")),kr==="https://app.posthog.com"?"https://us.posthog.com":kr}get region(){return this.br[this.apiHost]||(this.br[this.apiHost]=/https:\/\/(app|us|us-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?"us":/https:\/\/(eu|eu-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?"eu":Js),this.br[this.apiHost]}wr(Cr){var kr=this.instance.config.__preview_external_dependency_versioned_paths;if(typeof kr=="string"&&Xs.test(Cr))return kr.trim().replace(/\/$/,"")||void 0}endpointFor(Cr,kr){if(kr===void 0&&(kr=""),kr&&(kr=kr[0]==="/"?kr:"/"+kr),Cr==="ui")return this.uiHost+kr;if(Cr==="flags")return this.flagsApiHost+kr;if(Cr==="assets"){var Pr=this.wr(kr);if(Pr)return""+Pr+kr}if(this.region===Js)return this.apiHost+kr;var Rr=Ks+kr;switch(Cr){case"assets":return"https://"+this.region+"-assets."+Rr;case"api":return"https://"+this.region+"."+Rr}}}var Zs=wi("[Surveys]"),tn="seenSurvey_",en=($,Cr)=>{var kr="$survey_"+Cr+"/"+$.id;return $.current_iteration&&$.current_iteration>0&&(kr="$survey_"+Cr+"/"+$.id+"/"+$.current_iteration),kr},rn=$=>((Cr,kr)=>{var Pr=""+tn+kr.id;return kr.current_iteration&&kr.current_iteration>0&&(Pr=""+tn+kr.id+"_"+kr.current_iteration),Pr})(0,$),sn=[Or.Popover,Or.Widget,Or.API],nn={ignoreConditions:!1,ignoreDelay:!1,displayType:Dr.Popover},on=wi("[PostHog ExternalIntegrations]"),an={intercom:"intercom-integration",crispChat:"crisp-chat-integration"};class ln{constructor(Cr){this._instance=Cr}ni(Cr,kr){var Pr;(Pr=h$3.__PosthogExtensions__)==null||Pr.loadExternalDependency==null||Pr.loadExternalDependency(this._instance,Cr,(Rr=>{if(Rr)return on.error("failed to load script",Rr);kr()}))}startIfEnabledOrStop(){var Cr=this,kr=function(Fr){var Lr,qr,fa;!Rr||(Lr=h$3.__PosthogExtensions__)!=null&&(Lr=Lr.integrations)!=null&&Lr[Fr]||Cr.ni(an[Fr],(()=>{var pa;(pa=h$3.__PosthogExtensions__)==null||(pa=pa.integrations)==null||(pa=pa[Fr])==null||pa.start(Cr._instance)})),!Rr&&(qr=h$3.__PosthogExtensions__)!=null&&(qr=qr.integrations)!=null&&qr[Fr]&&((fa=h$3.__PosthogExtensions__)==null||(fa=fa.integrations)==null||(fa=fa[Fr])==null||fa.stop())};for(var[Pr,Rr]of Object.entries((Ir=this._instance.config.integrations)!==null&&Ir!==void 0?Ir:{})){var Ir;kr(Pr)}}}var un,hn={},dn=0,vn=()=>{},cn$2='Consent opt in/out is not valid with cookieless_mode="always" and will be ignored',fn="Surveys module not available",pn="sanitize_properties is deprecated. Use before_send instead",_n="Invalid value for property_denylist config: ",gn="posthog",mn=!xs&&(u$1==null?void 0:u$1.indexOf("MSIE"))===-1&&(u$1==null?void 0:u$1.indexOf("Mozilla"))===-1,bn=$=>{var Cr;return p$3({api_host:"https://us.i.posthog.com",flags_api_host:null,ui_host:null,token:"",autocapture:!0,cross_subdomain_cookie:Pe(r$c==null?void 0:r$c.location),persistence:"localStorage+cookie",persistence_name:"",cookie_persisted_properties:[],loaded:vn,save_campaign_params:!0,custom_campaign_params:[],custom_blocked_useragents:[],save_referrer:!0,capture_pageleave:"if_capture_pageview",defaults:$??"unset",__preview_deferred_init_extensions:!1,__preview_external_dependency_versioned_paths:!1,debug:s$d&&F(s$d==null?void 0:s$d.search)&&s$d.search.indexOf("__posthog_debug=true")!==-1||!1,cookie_expiration:365,upgrade:!1,disable_session_recording:!1,disable_persistence:!1,disable_web_experiments:!0,disable_surveys:!1,disable_surveys_automatic_display:!1,disable_conversations:!1,disable_product_tours:!1,disable_external_dependency_loading:!1,enable_recording_console_log:void 0,secure_cookie:(t$a==null||(Cr=t$a.location)==null?void 0:Cr.protocol)==="https:",ip:!1,opt_out_capturing_by_default:!1,opt_out_persistence_by_default:!1,opt_out_useragent_filter:!1,opt_out_capturing_persistence_type:"localStorage",consent_persistence_name:null,opt_out_capturing_cookie_prefix:null,opt_in_site_apps:!1,property_denylist:[],respect_dnt:!1,sanitize_properties:null,request_headers:{},request_batching:!0,properties_string_max_length:65535,mask_all_element_attributes:!1,mask_all_text:!1,mask_personal_data_properties:!1,custom_personal_data_properties:[],advanced_disable_flags:!1,advanced_disable_decide:!1,advanced_disable_feature_flags:!1,advanced_disable_feature_flags_on_first_load:!1,advanced_only_evaluate_survey_feature_flags:!1,advanced_feature_flags_dedup_per_session:!1,advanced_enable_surveys:!1,advanced_disable_toolbar_metrics:!1,feature_flag_request_timeout_ms:3e3,surveys_request_timeout_ms:1e4,on_request_error(kr){yi.error("Bad HTTP status: "+kr.statusCode+" "+kr.text)},get_device_id:kr=>kr,capture_performance:void 0,name:"posthog",bootstrap:{},disable_compression:!1,session_idle_timeout_seconds:1800,person_profiles:fe,before_send:void 0,request_queue_config:{flush_interval_ms:Fs},error_tracking:{},_onCapture:vn,__preview_eager_load_replay:!1},(kr=>({rageclick:!kr||"2025-11-30">kr||{content_ignorelist:!0},capture_pageview:!kr||"2025-05-24">kr||"history_change",session_recording:kr&&kr>="2025-11-30"?{strictMinimumDuration:!0}:{},external_scripts_inject_target:kr&&kr>="2026-01-30"?"head":"body",internal_or_test_user_hostname:kr&&kr>="2026-01-30"?/^(localhost|127\.0\.0\.1)$/:void 0}))($))},yn=[["process_person","person_profiles"],["xhr_headers","request_headers"],["cookie_name","persistence_name"],["disable_cookie","disable_persistence"],["store_google","save_campaign_params"],["verbose","debug"]],wn=$=>{var Cr={};for(var[kr,Pr]of yn)C($[kr])||(Cr[Pr]=$[kr]);var Rr=Se({},Cr,$);return k($.property_blacklist)&&(C($.property_denylist)?Rr.property_denylist=$.property_blacklist:k($.property_denylist)?Rr.property_denylist=[...$.property_blacklist,...$.property_denylist]:yi.error(_n+$.property_denylist)),Rr};class En{constructor(){this.__forceAllowLocalhost=!1}get _r(){return this.__forceAllowLocalhost}set _r(Cr){yi.error("WebPerformanceObserver is deprecated and has no impact on network capture. Use `_forceAllowLocalhostNetworkCapture` on `posthog.sessionRecording`"),this.__forceAllowLocalhost=Cr}}class Sn{Ir(Cr,kr){if(Cr){var Pr=this.Cr.indexOf(Cr);Pr!==-1&&this.Cr.splice(Pr,1)}return this.Cr.push(kr),kr.initialize==null||kr.initialize(),kr}get decideEndpointWasHit(){var Cr,kr;return(Cr=(kr=this.featureFlags)==null?void 0:kr.hasLoadedFlags)!==null&&Cr!==void 0&&Cr}get flagsEndpointWasHit(){var Cr,kr;return(Cr=(kr=this.featureFlags)==null?void 0:kr.hasLoadedFlags)!==null&&Cr!==void 0&&Cr}constructor(){var Cr;this.webPerformance=new En,this.Sr=!1,this.version=v$1.LIB_VERSION,this.kr=new js,this.Cr=[],this._calculate_event_properties=this.calculateEventProperties.bind(this),this.config=bn(),this.SentryIntegration=rr,this.sentryIntegration=Pr=>(function(Rr,Ir){var Fr=er(Rr,Ir);return{name:ir,processEvent:Lr=>Fr(Lr)}})(this,Pr),this.__request_queue=[],this.__loaded=!1,this.analyticsDefaultEndpoint="/e/",this.Tr=!1,this.Ar=null,this.Er=null,this.Rr=null,this.scrollManager=new Ls(this),this.pageViewManager=new sr(this),this.rateLimiter=new zr(this),this.requestRouter=new Qs(this),this.consent=new Je(this),this.externalIntegrations=new ln(this);var kr=(Cr=Sn.__defaultExtensionClasses)!==null&&Cr!==void 0?Cr:{};this.featureFlags=kr.featureFlags&&new kr.featureFlags(this),this.toolbar=kr.toolbar&&new kr.toolbar(this),this.surveys=kr.surveys&&new kr.surveys(this),this.conversations=kr.conversations&&new kr.conversations(this),this.logs=kr.logs&&new kr.logs(this),this.experiments=kr.experiments&&new kr.experiments(this),this.exceptions=kr.exceptions&&new kr.exceptions(this),this.people={set:(Pr,Rr,Ir)=>{var Fr=F(Pr)?{[Pr]:Rr}:Pr;this.setPersonProperties(Fr),Ir==null||Ir({})},set_once:(Pr,Rr,Ir)=>{var Fr=F(Pr)?{[Pr]:Rr}:Pr;this.setPersonProperties(void 0,Fr),Ir==null||Ir({})}},this.on("eventCaptured",(Pr=>yi.info('send "'+(Pr==null?void 0:Pr.event)+'"',Pr)))}init(Cr,kr,Pr){if(Pr&&Pr!==gn){var Rr,Ir=(Rr=hn[Pr])!==null&&Rr!==void 0?Rr:new Sn;return Ir._init(Cr,kr,Pr),hn[Pr]=Ir,hn[gn][Pr]=Ir,Ir}return this._init(Cr,kr,Pr)}_init(Cr,kr,Pr){var Rr,Ir;if(kr===void 0&&(kr={}),C(Cr)||A(Cr))return yi.critical("PostHog was initialized without a token. This likely indicates a misconfiguration. Please check the first argument passed to posthog.init()"),this;if(this.__loaded)return console.warn("[PostHog.js]","You have already initialized PostHog! Re-initializing is a no-op"),this;this.__loaded=!0,this.config={},kr.debug=this.Nr(kr.debug),this.Mr=kr,this.Fr=[],kr.person_profiles?this.Er=kr.person_profiles:kr.process_person&&(this.Er=kr.process_person),this.set_config(Se({},bn(kr.defaults),wn(kr),{name:Pr,token:Cr})),this.config.on_xhr_error&&yi.error("on_xhr_error is deprecated. Use on_request_error instead"),this.compression=kr.disable_compression?void 0:Vr.GZipJS;var Fr=this.Or();this.persistence=new Tr(this.config,Fr),this.sessionPersistence=this.config.persistence==="sessionStorage"||this.config.persistence==="memory"?this.persistence:new Tr(p$3({},this.config,{persistence:"sessionStorage"}),Fr);var Lr=p$3({},this.persistence.props),qr=p$3({},this.sessionPersistence.props);this.register({$initialization_time:new Date().toISOString()}),this.Pr=new As((ka=>this.Lr(ka)),this.config.request_queue_config),this.Dr=new Ds(this),this.__request_queue=[];var fa=this.config.cookieless_mode===de||this.config.cookieless_mode===he&&this.consent.isExplicitlyOptedOut();if(fa||(this.sessionManager=new Bs(this),this.sessionPropsManager=new Ns(this,this.sessionManager,this.persistence)),this.config.__preview_deferred_init_extensions?(yi.info("Deferring extension initialization to improve startup performance"),setTimeout((()=>{this.Br(fa)}),0)):(yi.info("Initializing extensions synchronously"),this.Br(fa)),v$1.DEBUG=v$1.DEBUG||this.config.debug,v$1.DEBUG&&yi.info("Starting in debug mode",{this:this,config:kr,thisC:p$3({},this.config),p:Lr,s:qr}),!this.config.identity_distinct_id||(Rr=kr.bootstrap)!=null&&Rr.distinctID||(kr.bootstrap=p$3({},kr.bootstrap,{distinctID:this.config.identity_distinct_id,isIdentifiedID:!0})),((Ir=kr.bootstrap)==null?void 0:Ir.distinctID)!==void 0){var pa=kr.bootstrap.distinctID,ga=this.get_distinct_id(),xa=this.persistence.get_property(Zi);if(kr.bootstrap.isIdentifiedID&&ga!=null&&ga!==pa&&xa===ve$1)this.identify(pa);else if(kr.bootstrap.isIdentifiedID&&ga!=null&&ga!==pa&&xa===ce)yi.warn("Bootstrap distinctID differs from an already-identified user. The existing identity is preserved. Call reset() before reinitializing if you intend to switch users.");else{var ya=this.config.get_device_id(Le()),ba=kr.bootstrap.isIdentifiedID?ya:pa;this.persistence.set_property(Zi,kr.bootstrap.isIdentifiedID?ce:ve$1),this.register({distinct_id:pa,$device_id:ba})}}if(fa)this.register_once({distinct_id:ae,$device_id:null},"");else if(!this.get_distinct_id()){var Aa=this.config.get_device_id(Le());this.register_once({distinct_id:Aa,$device_id:Aa},""),this.persistence.set_property(Zi,ve$1)}return Oe(t$a,"onpagehide"in self?"pagehide":"unload",this._handle_unload.bind(this),{passive:!1}),kr.segment?(function(ka,Ea){var Sa=ka.config.segment;if(!Sa)return Ea();(function(Ca,Ta){var Ia=Ca.config.segment;if(!Ia)return Ta();var Ra=Oa=>{var La=()=>Oa.anonymousId()||Le();Ca.config.get_device_id=La,Oa.id()&&(Ca.register({distinct_id:Oa.id(),$device_id:La()}),Ca.persistence.set_property(Zi,ce)),Ta()},ja=Ia.user();"then"in ja&&P$1(ja.then)?ja.then(Ra):Ra(ja)})(ka,(()=>{Sa.register((Ca=>{Promise&&Promise.resolve||tr.warn("This browser does not have Promise support, and can not use the segment integration");var Ta=(Ia,Ra)=>{if(!Ra)return Ia;Ia.event.userId||Ia.event.anonymousId===Ca.get_distinct_id()||(tr.info("No userId set, resetting PostHog"),Ca.reset()),Ia.event.userId&&Ia.event.userId!==Ca.get_distinct_id()&&(tr.info("UserId set, identifying with PostHog"),Ca.identify(Ia.event.userId));var ja=Ca.calculateEventProperties(Ra,Ia.event.properties);return Ia.event.properties=Object.assign({},ja,Ia.event.properties),Ia};return{name:"PostHog JS",type:"enrichment",version:"1.0.0",isLoaded:()=>!0,load:()=>Promise.resolve(),track:Ia=>Ta(Ia,Ia.event.event),page:Ia=>Ta(Ia,ge),identify:Ia=>Ta(Ia,be),screen:Ia=>Ta(Ia,"$screen")}})(ka)).then((()=>{Ea()}))}))})(this,(()=>this.jr())):this.jr(),P$1(this.config._onCapture)&&this.config._onCapture!==vn&&(yi.warn("onCapture is deprecated. Please use `before_send` instead"),this.on("eventCaptured",(ka=>this.config._onCapture(ka.event,ka)))),this.config.ip&&yi.warn('The `ip` config option has NO EFFECT AT ALL and has been deprecated. Use a custom transformation or "Discard IP data" project setting instead. See https://posthog.com/tutorials/web-redact-properties#hiding-customer-ip-address for more information.'),this}Br(Cr){var kr,Pr,Rr,Ir,Fr,Lr,qr,fa=performance.now(),pa=p$3({},Sn.__defaultExtensionClasses,this.config.__extensionClasses),ga=[];pa.featureFlags&&this.Cr.push(this.featureFlags=(kr=this.featureFlags)!==null&&kr!==void 0?kr:new pa.featureFlags(this)),pa.exceptions&&this.Cr.push(this.exceptions=(Pr=this.exceptions)!==null&&Pr!==void 0?Pr:new pa.exceptions(this)),pa.historyAutocapture&&this.Cr.push(this.historyAutocapture=new pa.historyAutocapture(this)),pa.tracingHeaders&&this.Cr.push(new pa.tracingHeaders(this)),pa.siteApps&&this.Cr.push(this.siteApps=new pa.siteApps(this)),pa.sessionRecording&&!Cr&&this.Cr.push(this.sessionRecording=new pa.sessionRecording(this)),this.config.disable_scroll_properties||ga.push((()=>{this.scrollManager.startMeasuringScrollPosition()})),pa.autocapture&&this.Cr.push(this.autocapture=new pa.autocapture(this)),pa.surveys&&this.Cr.push(this.surveys=(Rr=this.surveys)!==null&&Rr!==void 0?Rr:new pa.surveys(this)),pa.logs&&this.Cr.push(this.logs=(Ir=this.logs)!==null&&Ir!==void 0?Ir:new pa.logs(this)),pa.conversations&&this.Cr.push(this.conversations=(Fr=this.conversations)!==null&&Fr!==void 0?Fr:new pa.conversations(this)),pa.productTours&&this.Cr.push(this.productTours=new pa.productTours(this)),pa.heatmaps&&this.Cr.push(this.heatmaps=new pa.heatmaps(this)),pa.webVitalsAutocapture&&this.Cr.push(this.webVitalsAutocapture=new pa.webVitalsAutocapture(this)),pa.exceptionObserver&&this.Cr.push(this.exceptionObserver=new pa.exceptionObserver(this)),pa.deadClicksAutocapture&&this.Cr.push(this.deadClicksAutocapture=new pa.deadClicksAutocapture(this,Qe)),pa.toolbar&&this.Cr.push(this.toolbar=(Lr=this.toolbar)!==null&&Lr!==void 0?Lr:new pa.toolbar(this)),pa.experiments&&this.Cr.push(this.experiments=(qr=this.experiments)!==null&&qr!==void 0?qr:new pa.experiments(this)),this.Cr.forEach((xa=>{xa.initialize&&ga.push((()=>{xa.initialize==null||xa.initialize()}))})),ga.push((()=>{if(this.qr){var xa=this.qr;this.qr=void 0,this.Ci(xa)}})),this.Zr(ga,fa)}Zr(Cr,kr){for(;Cr.length>0;){if(this.config.__preview_deferred_init_extensions&&performance.now()-kr>=30&&Cr.length>0)return void setTimeout((()=>{this.Zr(Cr,kr)}),0);var Pr=Cr.shift();if(Pr)try{Pr()}catch(Ir){yi.error("Error initializing extension:",Ir)}}var Rr=Math.round(performance.now()-kr);this.register_for_session({$sdk_debug_extensions_init_method:this.config.__preview_deferred_init_extensions?"deferred":"synchronous",$sdk_debug_extensions_init_time_ms:Rr}),this.config.__preview_deferred_init_extensions&&yi.info("PostHog extensions initialized ("+Rr+"ms)")}Ci(Cr){var kr;if(!r$c||!r$c.body)return yi.info("document not ready yet, trying again in 500 milliseconds..."),void setTimeout((()=>{this.Ci(Cr)}),500);this.config.__preview_deferred_init_extensions&&(this.qr=Cr),this.compression=void 0,Cr.supportedCompression&&!this.config.disable_compression&&(this.compression=w$1(Cr.supportedCompression,Vr.GZipJS)?Vr.GZipJS:w$1(Cr.supportedCompression,Vr.Base64)?Vr.Base64:void 0),(kr=Cr.analytics)!=null&&kr.endpoint&&(this.analyticsDefaultEndpoint=Cr.analytics.endpoint),this.set_config({person_profiles:this.Er?this.Er:fe}),this.Cr.forEach((Pr=>Pr.onRemoteConfig==null?void 0:Pr.onRemoteConfig(Cr)))}jr(){try{this.config.loaded(this)}catch(Pr){yi.critical("`loaded` function failed",Pr)}if(this.$r(),this.config.internal_or_test_user_hostname&&s$d!=null&&s$d.hostname){var Cr=s$d.hostname,kr=this.config.internal_or_test_user_hostname;(typeof kr=="string"?Cr===kr:kr.test(Cr))&&this.setInternalOrTestUser()}this.config.capture_pageview&&setTimeout((()=>{(this.consent.isOptedIn()||this.config.cookieless_mode===de)&&this.Vr()}),1),this.Hr=new Hr(this),this.Hr.load()}$r(){var Cr;this.is_capturing()&&this.config.request_batching&&((Cr=this.Pr)==null||Cr.enable())}_dom_loaded(){this.is_capturing()&&we$1(this.__request_queue,(Cr=>this.Lr(Cr))),this.__request_queue=[],this.$r()}_handle_unload(){var Cr,kr,Pr,Rr;(Cr=this.surveys)==null||Cr.handlePageUnload(),this.config.request_batching?(this.zr()&&this.capture(me),(kr=this.logs)==null||kr.flushLogs("sendBeacon"),(Pr=this.Pr)==null||Pr.unload(),(Rr=this.Dr)==null||Rr.unload()):this.zr()&&this.capture(me,null,{transport:"sendBeacon"})}_send_request(Cr){this.__loaded&&(mn?this.__request_queue.push(Cr):this.rateLimiter.isServerRateLimited(Cr.batchKey)||(Cr.transport=Cr.transport||this.config.api_transport,Cr.url=Rs(Cr.url,{ip:this.config.ip?1:0}),Cr.headers=p$3({},this.config.request_headers,Cr.headers),Cr.compression=Cr.compression==="best-available"?this.compression:Cr.compression,Cr.disableXHRCredentials=this.config.__preview_disable_xhr_credentials,this.config.__preview_disable_beacon&&(Cr.disableTransport=["sendBeacon"]),Cr.fetchOptions=Cr.fetchOptions||this.config.fetch_options,(kr=>{var Pr,Rr,Ir,Fr=p$3({},kr);Fr.timeout=Fr.timeout||6e4,Fr.url=Is(Fr.url,Fr.compression);var Lr=(Pr=Fr.transport)!==null&&Pr!==void 0?Pr:"fetch",qr=Cs.filter((pa=>!Fr.disableTransport||!pa.transport||!Fr.disableTransport.includes(pa.transport))),fa=(Rr=(Ir=(function(pa,ga){for(var xa=0;pa.length>xa;xa++)if(pa[xa].transport===Lr)return pa[xa]})(qr))==null?void 0:Ir.method)!==null&&Rr!==void 0?Rr:qr[0].method;if(!fa)throw new Error("No available transport method");Lr!=="sendBeacon"&&Fr.data&&Fr.compression===Vr.GZipJS&&l$4&&!$s?Os(Fr).then((pa=>{fa(pa)})).catch((pa=>{if((ga=>!(!ga||typeof ga!="object")&&("name"in ga?String(ga.name):"")==="NotReadableError")(pa))return $s=!0,void fa(p$3({},Fr,{compression:void 0,url:Is(kr.url,void 0)}));fa(Fr)})):fa(Fr)})(p$3({},Cr,{callback:kr=>{var Pr,Rr;this.rateLimiter.checkForLimiting(kr),400>kr.statusCode||(Pr=(Rr=this.config).on_request_error)==null||Pr.call(Rr,kr),Cr.callback==null||Cr.callback(kr)}}))))}Lr(Cr){this.Dr?this.Dr.retriableRequest(Cr):this._send_request(Cr)}_execute_array(Cr){dn++;try{var kr,Pr=[],Rr=[],Ir=[];we$1(Cr,(Lr=>{Lr&&(k(kr=Lr[0])?Ir.push(Lr):P$1(Lr)?Lr.call(this):k(Lr)&&kr==="alias"?Pr.push(Lr):k(Lr)&&kr.indexOf("capture")!==-1&&P$1(this[kr])?Ir.push(Lr):Rr.push(Lr))}));var Fr=function(Lr,qr){we$1(Lr,(function(fa){if(k(fa[0])){var pa=qr;Ee(fa,(function(ga){pa=pa[ga[0]].apply(pa,ga.slice(1))}))}else qr[fa[0]].apply(qr,fa.slice(1))}))};Fr(Pr,this),Fr(Rr,this),Fr(Ir,this)}finally{dn--}}push(Cr){if(dn>0&&k(Cr)&&F(Cr[0])){var kr=Sn.prototype[Cr[0]];P$1(kr)&&kr.apply(this,Cr.slice(1))}else this._execute_array([Cr])}capture(Cr,kr,Pr){var Rr,Ir,Fr,Lr,qr;if(this.__loaded&&this.persistence&&this.sessionPersistence&&this.Pr){if(this.is_capturing())if(!C(Cr)&&F(Cr)){var fa=!this.config.opt_out_useragent_filter&&this._is_bot();if(!fa||this.config.__preview_capture_bot_pageviews){var pa=Pr!=null&&Pr.skip_client_rate_limiting?void 0:this.rateLimiter.clientRateLimitContext();if(pa==null||!pa.isRateLimited){kr!=null&&kr.$current_url&&!F(kr==null?void 0:kr.$current_url)&&(yi.error("Invalid `$current_url` property provided to `posthog.capture`. Input must be a string. Ignoring provided value."),kr==null||delete kr.$current_url),Cr!=="$exception"||Pr!=null&&Pr.Ur||yi.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.sessionPersistence.update_search_keyword(),this.config.save_campaign_params&&this.sessionPersistence.update_campaign_params(),this.config.save_referrer&&this.sessionPersistence.update_referrer_info(),(this.config.save_campaign_params||this.config.save_referrer)&&this.persistence.set_initial_person_info();var ga=new Date,xa=(Pr==null?void 0:Pr.timestamp)||ga,ya=Le(),ba={uuid:ya,event:Cr,properties:this.calculateEventProperties(Cr,kr||{},xa,ya)};Cr===ge&&this.config.__preview_capture_bot_pageviews&&fa&&(ba.event="$bot_pageview",ba.properties.$browser_type="bot"),pa&&(ba.properties.$lib_rate_limit_remaining_tokens=pa.remainingTokens),Pr!=null&&Pr.$set&&(ba.$set=Pr==null?void 0:Pr.$set);var Aa,ka=this.Yr(Pr==null?void 0:Pr.$set_once,Cr!==ye,Cr===be);if(ka&&(ba.$set_once=ka),Pr!=null&&Pr._noTruncate||(Ir=this.config.properties_string_max_length,Fr=ba,Lr=ja=>F(ja)?ja.slice(0,Ir):ja,qr=new Set,ba=(function ja(Oa,La){return Oa!==Object(Oa)?Lr?Lr(Oa):Oa:qr.has(Oa)?void 0:(qr.add(Oa),k(Oa)?(Ha=[],we$1(Oa,(Wa=>{Ha.push(ja(Wa))}))):(Ha={},Ee(Oa,((Wa,Ja)=>{qr.has(Wa)||(Ha[Ja]=ja(Wa))}))),Ha);var Ha})(Fr)),ba.timestamp=xa,C(Pr==null?void 0:Pr.timestamp)||(ba.properties.$event_time_override_provided=!0,ba.properties.$event_time_override_system_time=ga),Cr===Ar.DISMISSED||Cr===Ar.SENT){var Ea=kr==null?void 0:kr[Mr.SURVEY_ID],Sa=kr==null?void 0:kr[Mr.SURVEY_ITERATION];Aa={id:Ea,current_iteration:Sa},localStorage.getItem(rn(Aa))||localStorage.setItem(rn(Aa),"true"),ba.$set=p$3({},ba.$set,{[en({id:Ea,current_iteration:Sa},Cr===Ar.SENT?"responded":"dismissed")]:!0})}else Cr===Ar.SHOWN&&(ba.$set=p$3({},ba.$set,{[Mr.SURVEY_LAST_SEEN_DATE]:new Date().toISOString()}));if(Cr===Ur.SHOWN){var Ca=kr==null?void 0:kr[Nr.TOUR_TYPE];Ca&&(ba.$set=p$3({},ba.$set,{[Nr.TOUR_LAST_SEEN_DATE+"/"+Ca]:new Date().toISOString()}))}var Ta=p$3({},ba.properties.$set,ba.$set);if(I$1(Ta)||this.setPersonPropertiesForFlags(Ta),!D(this.config.before_send)){var Ia=this.Gr(ba);if(!Ia)return;ba=Ia}this.kr.emit("eventCaptured",ba);var Ra={method:"POST",url:(Rr=Pr==null?void 0:Pr._url)!==null&&Rr!==void 0?Rr:this.requestRouter.endpointFor("api",this.analyticsDefaultEndpoint),data:ba,compression:"best-available",batchKey:Pr==null?void 0:Pr._batchKey};return!this.config.request_batching||Pr&&(Pr==null||!Pr._batchKey)||Pr!=null&&Pr.send_instantly?this.Lr(Ra):this.Pr.enqueue(Ra),ba}yi.critical("This capture call is ignored due to client rate limiting.")}}else yi.error("No event name provided to posthog.capture")}else yi.uninitializedWarning("posthog.capture")}_addCaptureHook(Cr){return this.on("eventCaptured",(kr=>Cr(kr.event,kr)))}calculateEventProperties(Cr,kr,Pr,Rr,Ir){if(Pr=Pr||new Date,!this.persistence||!this.sessionPersistence)return kr;var Fr=Ir?void 0:this.persistence.remove_event_timer(Cr),Lr=p$3({},kr);if(Lr.token=this.config.token,Lr.$config_defaults=this.config.defaults,(this.config.cookieless_mode==de||this.config.cookieless_mode==he&&this.consent.isExplicitlyOptedOut())&&(Lr.$cookieless_mode=!0),Cr==="$snapshot"){var qr=p$3({},this.persistence.properties(),this.sessionPersistence.properties());return Lr.distinct_id=qr.distinct_id,(!F(Lr.distinct_id)&&!L(Lr.distinct_id)||A(Lr.distinct_id))&&yi.error("Invalid distinct_id for replay event. This indicates a bug in your implementation"),Lr}var fa,pa=(function(Ea,Sa){var Ca,Ta,Ia,Ra;if(!u$1)return{};var ja,Oa,La,Ha,Wa,Ja,Ya,Za,Qa=Ea?[...hr,...Sa||[]]:[],[Na,Ka]=(function(Fa){for(var Va=0;Wt.length>Va;Va++){var[Da,Ba]=Wt[Va],Ga=Da.exec(Fa),Ua=Ga&&(P$1(Ba)?Ba(Ga,Fa):Ba);if(Ua)return Ua}return["",""]})(u$1);return Se(Re({$os:Na,$os_version:Ka,$browser:Ht(u$1,navigator.vendor),$device:Gt(u$1),$device_type:(Oa=u$1,La={userAgentDataPlatform:(Ca=navigator)==null||(Ca=Ca.userAgentData)==null?void 0:Ca.platform,maxTouchPoints:(Ta=navigator)==null?void 0:Ta.maxTouchPoints,screenWidth:t$a==null||(Ia=t$a.screen)==null?void 0:Ia.width,screenHeight:t$a==null||(Ra=t$a.screen)==null?void 0:Ra.height,devicePixelRatio:t$a==null?void 0:t$a.devicePixelRatio},Za=Gt(Oa),Za===st||Za===rt||Za==="Kobo"||Za==="Kindle Fire"||Za===At?et:Za===St||Za===Tt||Za===xt||Za===It?"Console":Za===ot?"Wearable":Za?Z:(La==null?void 0:La.userAgentDataPlatform)==="Android"&&((Ha=La==null?void 0:La.maxTouchPoints)!==null&&Ha!==void 0?Ha:0)>0?600>Math.min((Wa=La==null?void 0:La.screenWidth)!==null&&Wa!==void 0?Wa:0,(Ja=La==null?void 0:La.screenHeight)!==null&&Ja!==void 0?Ja:0)/((Ya=La==null?void 0:La.devicePixelRatio)!==null&&Ya!==void 0?Ya:1)?Z:et:"Desktop"),$timezone:Er(),$timezone_offset:Sr()}),{$current_url:ar(s$d==null?void 0:s$d.href,Qa,vr),$host:s$d==null?void 0:s$d.host,$pathname:s$d==null?void 0:s$d.pathname,$raw_user_agent:u$1.length>1e3?u$1.substring(0,997)+"...":u$1,$browser_version:Vt(u$1,navigator.vendor),$browser_language:gr(),$browser_language_prefix:(ja=gr(),typeof ja=="string"?ja.split("-")[0]:void 0),$screen_height:t$a==null?void 0:t$a.screen.height,$screen_width:t$a==null?void 0:t$a.screen.width,$viewport_height:t$a==null?void 0:t$a.innerHeight,$viewport_width:t$a==null?void 0:t$a.innerWidth,$lib:v$1.LIB_NAME,$lib_version:v$1.LIB_VERSION,$insert_id:Math.random().toString(36).substring(2,10)+Math.random().toString(36).substring(2,10),$time:Date.now()/1e3})})(this.config.mask_personal_data_properties,this.config.custom_personal_data_properties);if(this.sessionManager){var{sessionId:ga,windowId:xa}=this.sessionManager.checkAndGetSessionAndWindowId(Ir,Pr.getTime());Lr.$session_id=ga,Lr.$window_id=xa}this.sessionPropsManager&&Se(Lr,this.sessionPropsManager.getSessionProps());try{var ya;this.sessionRecording&&Se(Lr,this.sessionRecording.sdkDebugProperties),Lr.$sdk_debug_retry_queue_size=(ya=this.Dr)==null?void 0:ya.length}catch(Ea){Lr.$sdk_debug_error_capturing_properties=String(Ea)}if(this.requestRouter.region===Js&&(Lr.$lib_custom_api_host=this.config.api_host),fa=Cr!==ge||Ir?Cr!==me||Ir?this.pageViewManager.doEvent():this.pageViewManager.doPageLeave(Pr):this.pageViewManager.doPageView(Pr,Rr),Lr=Se(Lr,fa),Cr===ge&&r$c&&(Lr.title=r$c.title),!C(Fr)){var ba=Pr.getTime()-Fr;Lr.$duration=parseFloat((ba/1e3).toFixed(3))}u$1&&this.config.opt_out_useragent_filter&&(Lr.$browser_type=this._is_bot()?"bot":"browser"),(Lr=Se({},pa,this.persistence.properties(),this.sessionPersistence.properties(),Lr)).$is_identified=this._isIdentified(),k(this.config.property_denylist)?Ee(this.config.property_denylist,(function(Ea){delete Lr[Ea]})):yi.error(_n+this.config.property_denylist+" or property_blacklist config: "+this.config.property_blacklist);var Aa=this.config.sanitize_properties;Aa&&(yi.error(pn),Lr=Aa(Lr,Cr));var ka=this.Wr();return Lr.$process_person_profile=ka,ka&&!Ir&&this.Xr("_calculate_event_properties"),Lr}Yr(Cr,kr,Pr){var Rr;if(kr===void 0&&(kr=!0),Pr===void 0&&(Pr=!1),!this.persistence||!this.Wr()||this.Sr&&!Pr)return Cr;var Ir=this.persistence.get_initial_props(),Fr=(Rr=this.sessionPropsManager)==null?void 0:Rr.getSetOnceProps(),Lr=Se({},Ir,Fr||{},Cr||{}),qr=this.config.sanitize_properties;return qr&&(yi.error(pn),Lr=qr(Lr,"$set_once")),kr&&(this.Sr=!0),I$1(Lr)?void 0:Lr}register(Cr,kr){var Pr;(Pr=this.persistence)==null||Pr.register(Cr,kr)}register_once(Cr,kr,Pr){var Rr;(Rr=this.persistence)==null||Rr.register_once(Cr,kr,Pr)}register_for_session(Cr){var kr;(kr=this.sessionPersistence)==null||kr.register(Cr)}unregister(Cr){var kr;(kr=this.persistence)==null||kr.unregister(Cr)}unregister_for_session(Cr){var kr;(kr=this.sessionPersistence)==null||kr.unregister(Cr)}Jr(Cr,kr){this.register({[Cr]:kr})}getFeatureFlag(Cr,kr){var Pr;return(Pr=this.featureFlags)==null?void 0:Pr.getFeatureFlag(Cr,kr)}getFeatureFlagPayload(Cr){var kr;return(kr=this.featureFlags)==null?void 0:kr.getFeatureFlagPayload(Cr)}getFeatureFlagResult(Cr,kr){var Pr;return(Pr=this.featureFlags)==null?void 0:Pr.getFeatureFlagResult(Cr,kr)}isFeatureEnabled(Cr,kr){var Pr;return(Pr=this.featureFlags)==null?void 0:Pr.isFeatureEnabled(Cr,kr)}reloadFeatureFlags(){var Cr;(Cr=this.featureFlags)==null||Cr.reloadFeatureFlags()}updateFlags(Cr,kr,Pr){var Rr;(Rr=this.featureFlags)==null||Rr.updateFlags(Cr,kr,Pr)}updateEarlyAccessFeatureEnrollment(Cr,kr,Pr){var Rr;(Rr=this.featureFlags)==null||Rr.updateEarlyAccessFeatureEnrollment(Cr,kr,Pr)}getEarlyAccessFeatures(Cr,kr,Pr){var Rr;return kr===void 0&&(kr=!1),(Rr=this.featureFlags)==null?void 0:Rr.getEarlyAccessFeatures(Cr,kr,Pr)}on(Cr,kr){return this.kr.on(Cr,kr)}onFeatureFlags(Cr){return this.featureFlags?this.featureFlags.onFeatureFlags(Cr):(Cr([],{},{errorsLoading:!0}),()=>{})}onSurveysLoaded(Cr){return this.surveys?this.surveys.onSurveysLoaded(Cr):(Cr([],{isLoaded:!1,error:fn}),()=>{})}onSessionId(Cr){var kr,Pr;return(kr=(Pr=this.sessionManager)==null?void 0:Pr.onSessionId(Cr))!==null&&kr!==void 0?kr:()=>{}}getSurveys(Cr,kr){kr===void 0&&(kr=!1),this.surveys?this.surveys.getSurveys(Cr,kr):Cr([],{isLoaded:!1,error:fn})}getActiveMatchingSurveys(Cr,kr){kr===void 0&&(kr=!1),this.surveys?this.surveys.getActiveMatchingSurveys(Cr,kr):Cr([],{isLoaded:!1,error:fn})}renderSurvey(Cr,kr){var Pr;(Pr=this.surveys)==null||Pr.renderSurvey(Cr,kr)}displaySurvey(Cr,kr){var Pr;kr===void 0&&(kr=nn),(Pr=this.surveys)==null||Pr.displaySurvey(Cr,kr)}cancelPendingSurvey(Cr){var kr;(kr=this.surveys)==null||kr.cancelPendingSurvey(Cr)}canRenderSurvey(Cr){var kr,Pr;return(kr=(Pr=this.surveys)==null?void 0:Pr.canRenderSurvey(Cr))!==null&&kr!==void 0?kr:{visible:!1,disabledReason:fn}}canRenderSurveyAsync(Cr,kr){var Pr,Rr;return kr===void 0&&(kr=!1),(Pr=(Rr=this.surveys)==null?void 0:Rr.canRenderSurveyAsync(Cr,kr))!==null&&Pr!==void 0?Pr:Promise.resolve({visible:!1,disabledReason:fn})}Kr(Cr){return!Cr||A(Cr)?(yi.critical("Unique user id has not been set in posthog.identify"),!1):Cr===ae?(yi.critical('The string "'+Cr+'" was set in posthog.identify which indicates an error. This ID is only used as a sentinel value.'),!1):!["distinct_id","distinctid"].includes(Cr.toLowerCase())&&!["undefined","null"].includes(Cr.toLowerCase())||(yi.critical('The string "'+Cr+'" was set in posthog.identify which indicates an error. This ID should be unique to the user and not a hardcoded string.'),!1)}identify(Cr,kr,Pr){if(!this.__loaded||!this.persistence)return yi.uninitializedWarning("posthog.identify");if(L(Cr)&&(Cr=Cr.toString(),yi.warn("The first argument to posthog.identify was a number, but it should be a string. It has been converted to a string.")),this.Kr(Cr)&&this.Xr("posthog.identify")){var Rr=this.get_distinct_id();this.register({$user_id:Cr}),this.get_property(Ti)||this.register_once({$had_persisted_distinct_id:!0,$device_id:Rr},""),Cr!==Rr&&Cr!==this.get_property($i)&&(this.unregister($i),this.register({distinct_id:Cr}));var Ir,Fr=(this.persistence.get_property(Zi)||ve$1)===ve$1;Cr!==Rr&&Fr?(this.persistence.set_property(Zi,ce),this.setPersonPropertiesForFlags({$set:kr||{},$set_once:Pr||{}},!1),this.capture(be,{distinct_id:Cr,$anon_distinct_id:Rr},{$set:kr||{},$set_once:Pr||{}}),this.Rr=Vs(Cr,kr,Pr),(Ir=this.featureFlags)==null||Ir.setAnonymousDistinctId(Rr)):(kr||Pr)&&this.setPersonProperties(kr,Pr),Cr!==Rr&&(this.reloadFeatureFlags(),this.unregister(Ji))}}setPersonProperties(Cr,kr){if((Cr||kr)&&this.Xr("posthog.setPersonProperties")){var Pr=Vs(this.get_distinct_id(),Cr,kr);this.Rr!==Pr?(this.setPersonPropertiesForFlags({$set:Cr||{},$set_once:kr||{}},!0),this.capture("$set",{$set:Cr||{},$set_once:kr||{}}),this.Rr=Pr):yi.info("A duplicate setPersonProperties call was made with the same properties. It has been ignored.")}}group(Cr,kr,Pr){if(Cr&&kr){var Rr=this.getGroups(),Ir=Rr[Cr]!==kr;if(Ir&&this.resetGroupPropertiesForFlags(Cr),this.register({$groups:p$3({},Rr,{[Cr]:kr})}),Ir||Pr){var Fr={$group_type:Cr,$group_key:kr};Pr&&(Fr.$group_set=Pr),this.capture(ye,Fr)}Pr&&this.setGroupPropertiesForFlags({[Cr]:Pr}),Ir&&!Pr&&this.reloadFeatureFlags()}else yi.error("posthog.group requires a group type and group key")}resetGroups(){this.register({$groups:{}}),this.resetGroupPropertiesForFlags(),this.reloadFeatureFlags()}setPersonPropertiesForFlags(Cr,kr){var Pr;kr===void 0&&(kr=!0),(Pr=this.featureFlags)==null||Pr.setPersonPropertiesForFlags(Cr,kr)}resetPersonPropertiesForFlags(){var Cr;(Cr=this.featureFlags)==null||Cr.resetPersonPropertiesForFlags()}setGroupPropertiesForFlags(Cr,kr){var Pr;kr===void 0&&(kr=!0),this.Xr("posthog.setGroupPropertiesForFlags")&&((Pr=this.featureFlags)==null||Pr.setGroupPropertiesForFlags(Cr,kr))}resetGroupPropertiesForFlags(Cr){var kr;(kr=this.featureFlags)==null||kr.resetGroupPropertiesForFlags(Cr)}reset(Cr){var kr,Pr,Rr,Ir,Fr,Lr,qr,fa;if(yi.info("reset"),!this.__loaded)return yi.uninitializedWarning("posthog.reset");var pa=this.get_property(Ti);if(this.consent.reset(),(kr=this.persistence)==null||kr.clear(),(Pr=this.sessionPersistence)==null||Pr.clear(),(Rr=this.surveys)==null||Rr.reset(),(Ir=this.Hr)==null||Ir.stop(),(Fr=this.featureFlags)==null||Fr.reset(),(Lr=this.conversations)==null||Lr.reset(),(qr=this.persistence)==null||qr.set_property(Zi,ve$1),(fa=this.sessionManager)==null||fa.resetSessionId(),this.Rr=null,this.config.cookieless_mode===de)this.register_once({distinct_id:ae,$device_id:null},"");else{var ga=this.config.get_device_id(Le());this.register_once({distinct_id:ga,$device_id:Cr?ga:pa},"")}this.register({$last_posthog_reset:new Date().toISOString()},1),delete this.config.identity_distinct_id,delete this.config.identity_hash,this.reloadFeatureFlags()}setIdentity(Cr,kr){var Pr;this.config.identity_distinct_id=Cr,this.config.identity_hash=kr,this.alias(Cr),(Pr=this.conversations)==null||Pr.Qr()}clearIdentity(){var Cr;delete this.config.identity_distinct_id,delete this.config.identity_hash,(Cr=this.conversations)==null||Cr.tn()}get_distinct_id(){return this.get_property("distinct_id")}getGroups(){return this.get_property("$groups")||{}}get_session_id(){var Cr,kr;return(Cr=(kr=this.sessionManager)==null?void 0:kr.checkAndGetSessionAndWindowId(!0).sessionId)!==null&&Cr!==void 0?Cr:""}get_session_replay_url(Cr){if(!this.sessionManager)return"";var{sessionId:kr,sessionStartTimestamp:Pr}=this.sessionManager.checkAndGetSessionAndWindowId(!0),Rr=this.requestRouter.endpointFor("ui","/project/"+this.config.token+"/replay/"+kr);if(Cr!=null&&Cr.withTimestamp&&Pr){var Ir,Fr=(Ir=Cr.timestampLookBack)!==null&&Ir!==void 0?Ir:10;if(!Pr)return Rr;Rr+="?t="+Math.max(Math.floor((new Date().getTime()-Pr)/1e3)-Fr,0)}return Rr}alias(Cr,kr){return Cr===this.get_property(xi)?(yi.critical("Attempting to create alias for existing People user - aborting."),-2):this.Xr("posthog.alias")?(C(kr)&&(kr=this.get_distinct_id()),Cr!==kr?(this.Jr($i,Cr),this.capture("$create_alias",{alias:Cr,distinct_id:kr})):(yi.warn("alias matches current distinct_id - skipping api call."),this.identify(Cr),-1)):void 0}set_config(Cr){var kr=p$3({},this.config);if(O(Cr)){var Pr,Rr,Ir,Fr,Lr,qr,fa,pa,ga;Se(this.config,wn(Cr));var xa=this.Or();(Pr=this.persistence)==null||Pr.update_config(this.config,kr,xa),this.sessionPersistence=this.config.persistence==="sessionStorage"||this.config.persistence==="memory"?this.persistence:new Tr(p$3({},this.config,{persistence:"sessionStorage"}),xa);var ya=this.Nr(this.config.debug);N$1(ya)&&(this.config.debug=ya),N$1(this.config.debug)&&(this.config.debug?(v$1.DEBUG=!0,He.Ut()&&He.Xt("ph_debug",!0),yi.info("set_config",{config:Cr,oldConfig:kr,newConfig:p$3({},this.config)})):(v$1.DEBUG=!1,He.Ut()&&He.Jt("ph_debug"))),(Rr=this.exceptionObserver)==null||Rr.onConfigChange(),(Ir=this.sessionRecording)==null||Ir.startIfEnabledOrStop(),(Fr=this.autocapture)==null||Fr.startIfEnabled(),(Lr=this.heatmaps)==null||Lr.startIfEnabled(),(qr=this.exceptionObserver)==null||qr.startIfEnabledOrStop(),(fa=this.deadClicksAutocapture)==null||fa.startIfEnabledOrStop(),(pa=this.surveys)==null||pa.loadIfEnabled(),this.en(),(ga=this.externalIntegrations)==null||ga.startIfEnabledOrStop()}}_overrideSDKInfo(Cr,kr){v$1.LIB_NAME=Cr,v$1.LIB_VERSION=kr}startSessionRecording(Cr){var kr,Pr,Rr,Ir,Fr,Lr=Cr===!0,qr={sampling:Lr||!(Cr==null||!Cr.sampling),linked_flag:Lr||!(Cr==null||!Cr.linked_flag),url_trigger:Lr||!(Cr==null||!Cr.url_trigger),event_trigger:Lr||!(Cr==null||!Cr.event_trigger)};Object.values(qr).some(Boolean)&&((kr=this.sessionManager)==null||kr.checkAndGetSessionAndWindowId(),qr.sampling&&((Pr=this.sessionRecording)==null||Pr.overrideSampling()),qr.linked_flag&&((Rr=this.sessionRecording)==null||Rr.overrideLinkedFlag()),qr.url_trigger&&((Ir=this.sessionRecording)==null||Ir.overrideTrigger("url")),qr.event_trigger&&((Fr=this.sessionRecording)==null||Fr.overrideTrigger("event"))),this.set_config({disable_session_recording:!1})}stopSessionRecording(){this.set_config({disable_session_recording:!0})}sessionRecordingStarted(){var Cr;return!((Cr=this.sessionRecording)==null||!Cr.started)}captureException(Cr,kr){if(this.exceptions){var Pr=new Error("PostHog syntheticException"),Rr=this.exceptions.buildProperties(Cr,{handled:!0,syntheticException:Pr});return this.exceptions.sendExceptionEvent(p$3({},Rr,kr))}}captureLog(Cr){var kr;(kr=this.logs)==null||kr.captureLog(Cr)}get logger(){var Cr,kr;return(Cr=(kr=this.logs)==null?void 0:kr.logger)!==null&&Cr!==void 0?Cr:Sn.rn}startExceptionAutocapture(Cr){this.set_config({capture_exceptions:Cr==null||Cr})}stopExceptionAutocapture(){this.set_config({capture_exceptions:!1})}loadToolbar(Cr){var kr,Pr;return(kr=(Pr=this.toolbar)==null?void 0:Pr.loadToolbar(Cr))!==null&&kr!==void 0&&kr}get_property(Cr){var kr;return(kr=this.persistence)==null?void 0:kr.props[Cr]}getSessionProperty(Cr){var kr;return(kr=this.sessionPersistence)==null?void 0:kr.props[Cr]}toString(){var Cr,kr=(Cr=this.config.name)!==null&&Cr!==void 0?Cr:gn;return kr!==gn&&(kr=gn+"."+kr),kr}_isIdentified(){var Cr,kr;return((Cr=this.persistence)==null?void 0:Cr.get_property(Zi))===ce||((kr=this.sessionPersistence)==null?void 0:kr.get_property(Zi))===ce}Wr(){var Cr,kr;return!(this.config.person_profiles==="never"||this.config.person_profiles===fe&&!this._isIdentified()&&I$1(this.getGroups())&&((Cr=this.persistence)==null||(Cr=Cr.props)==null||!Cr[$i])&&((kr=this.persistence)==null||(kr=kr.props)==null||!kr[ne]))}zr(){return this.config.capture_pageleave===!0||this.config.capture_pageleave==="if_capture_pageview"&&(this.config.capture_pageview===!0||this.config.capture_pageview==="history_change")}createPersonProfile(){this.Wr()||this.Xr("posthog.createPersonProfile")&&this.setPersonProperties({},{})}setInternalOrTestUser(){this.Xr("posthog.setInternalOrTestUser")&&this.setPersonProperties({$internal_or_test_user:!0})}Xr(Cr){return this.config.person_profiles==="never"?(yi.error(Cr+' was called, but process_person is set to "never". This call will be ignored.'),!1):(this.Jr(ne,!0),!0)}Or(){if(this.config.cookieless_mode==="always")return!0;var Cr=this.consent.isOptedOut();return this.config.disable_persistence||Cr&&!(!this.config.opt_out_persistence_by_default&&this.config.cookieless_mode!==he)}en(){var Cr,kr,Pr,Rr,Ir=this.Or();return((Cr=this.persistence)==null?void 0:Cr.fi)!==Ir&&((Pr=this.persistence)==null||Pr.set_disabled(Ir)),((kr=this.sessionPersistence)==null?void 0:kr.fi)!==Ir&&((Rr=this.sessionPersistence)==null||Rr.set_disabled(Ir)),Ir}opt_in_capturing(Cr){var kr;if(this.config.cookieless_mode!==de){if(this.config.cookieless_mode===he&&this.consent.isExplicitlyOptedOut()){var Pr,Rr,Ir,Fr,Lr;this.reset(!0),(Pr=this.sessionManager)==null||Pr.destroy(),(Rr=this.pageViewManager)==null||Rr.destroy(),this.sessionManager=new Bs(this),this.pageViewManager=new sr(this),this.persistence&&(this.sessionPropsManager=new Ns(this,this.sessionManager,this.persistence));var qr=(Ir=(Fr=this.config.__extensionClasses)==null?void 0:Fr.sessionRecording)!==null&&Ir!==void 0?Ir:(Lr=Sn.__defaultExtensionClasses)==null?void 0:Lr.sessionRecording;qr&&(this.sessionRecording=this.Ir(this.sessionRecording,new qr(this)))}var fa,pa;this.consent.optInOut(!0),this.en(),this.$r(),(kr=this.sessionRecording)==null||kr.startIfEnabledOrStop(),this.config.cookieless_mode==he&&((fa=this.surveys)==null||fa.loadIfEnabled()),(C(Cr==null?void 0:Cr.captureEventName)||Cr!=null&&Cr.captureEventName)&&this.capture((pa=Cr==null?void 0:Cr.captureEventName)!==null&&pa!==void 0?pa:"$opt_in",Cr==null?void 0:Cr.captureProperties,{send_instantly:!0}),this.config.capture_pageview&&this.Vr()}else yi.warn(cn$2)}opt_out_capturing(){var Cr,kr,Pr;this.config.cookieless_mode!==de?(this.config.cookieless_mode===he&&this.consent.isOptedIn()&&this.reset(!0),this.consent.optInOut(!1),this.en(),this.config.cookieless_mode===he&&(this.register({distinct_id:ae,$device_id:null}),(Cr=this.sessionManager)==null||Cr.destroy(),(kr=this.pageViewManager)==null||kr.destroy(),this.sessionManager=void 0,this.sessionPropsManager=void 0,(Pr=this.sessionRecording)==null||Pr.stopRecording(),this.sessionRecording=void 0,this.Vr())):yi.warn(cn$2)}has_opted_in_capturing(){return this.consent.isOptedIn()}has_opted_out_capturing(){return this.consent.isOptedOut()}get_explicit_consent_status(){var Cr=this.consent.consent;return Cr===1?"granted":Cr===0?"denied":"pending"}is_capturing(){return this.config.cookieless_mode===de||(this.config.cookieless_mode===he?this.consent.isExplicitlyOptedOut()||this.consent.isOptedIn():!this.has_opted_out_capturing())}clear_opt_in_out_capturing(){this.consent.reset(),this.en()}_is_bot(){return e$n?Hs(e$n,this.config.custom_blocked_useragents):void 0}Vr(){r$c&&(r$c.visibilityState==="visible"?this.Tr||(this.Tr=!0,this.capture(ge,{title:r$c.title},{send_instantly:!0}),this.Ar&&(r$c.removeEventListener(pe,this.Ar),this.Ar=null)):this.Ar||(this.Ar=this.Vr.bind(this),Oe(r$c,pe,this.Ar)))}debug(Cr){Cr===!1?(t$a==null||t$a.console.log("You've disabled debug mode."),this.set_config({debug:!1})):(t$a==null||t$a.console.log("You're now in debug mode. All calls to PostHog will be logged in your console.\nYou can disable this with `posthog.debug(false)`."),this.set_config({debug:!0}))}ki(){var Cr,kr,Pr,Rr,Ir,Fr,Lr=this.Mr||{};return"advanced_disable_flags"in Lr?!!Lr.advanced_disable_flags:this.config.advanced_disable_flags!==!1?!!this.config.advanced_disable_flags:this.config.advanced_disable_decide===!0?(yi.warn("Config field 'advanced_disable_decide' is deprecated. Please use 'advanced_disable_flags' instead. The old field will be removed in a future major version."),!0):(Pr="advanced_disable_decide",Rr=yi,Ir=(kr="advanced_disable_flags")in(Cr=Lr)&&!D(Cr[kr]),Fr=Pr in Cr&&!D(Cr[Pr]),Ir?Cr[kr]:!!Fr&&(Rr&&Rr.warn("Config field '"+Pr+"' is deprecated. Please use '"+kr+"' instead. The old field will be removed in a future major version."),Cr[Pr]))}Gr(Cr){if(D(this.config.before_send))return Cr;var kr=k(this.config.before_send)?this.config.before_send:[this.config.before_send],Pr=Cr;for(var Rr of kr){if(Pr=Rr(Pr),D(Pr)){var Ir="Event '"+Cr.event+"' was rejected in beforeSend function";return z(Cr.event)?yi.warn(Ir+". This can cause unexpected behavior."):yi.info(Ir),null}Pr.properties&&!I$1(Pr.properties)||yi.warn("Event '"+Cr.event+"' has no properties after beforeSend function, this is likely an error.")}return Pr}getPageViewId(){var Cr;return(Cr=this.pageViewManager.ai)==null?void 0:Cr.pageViewId}captureTraceFeedback(Cr,kr){this.capture("$ai_feedback",{$ai_trace_id:String(Cr),$ai_feedback_text:kr})}captureTraceMetric(Cr,kr,Pr){this.capture("$ai_metric",{$ai_trace_id:String(Cr),$ai_metric_name:kr,$ai_metric_value:String(Pr)})}Nr(Cr){var kr=N$1(Cr)&&!Cr,Pr=He.Ut()&&He.Gt("ph_debug")==="true";return!kr&&(!!Pr||Cr)}}function xn($){return $ instanceof Element&&($.id===oe||!($.closest==null||!$.closest(".toolbar-global-fade-container")))}function Tn($){return!!$&&$.nodeType===1}function $n($,Cr){return!!$&&!!$.tagName&&$.tagName.toLowerCase()===Cr.toLowerCase()}function Rn($){return!!$&&$.nodeType===3}function kn($){return!!$&&$.nodeType===11}function Pn($){return $?E($).split(/\s+/):[]}function On($){var Cr=t$a==null?void 0:t$a.location.href;return!!(Cr&&$&&$.some((kr=>Cr.match(kr))))}function In($){var Cr="";switch(typeof $.className){case"string":Cr=$.className;break;case"object":Cr=($.className&&"baseVal"in $.className?$.className.baseVal:null)||$.getAttribute("class")||"";break;default:Cr=""}return Pn(Cr)}function Cn($){return D($)?null:E($).split(/(\s+)/).filter((Cr=>Kn(Cr))).join("").replace(/[\r\n]/g," ").replace(/[ ]+/g," ").substring(0,255)}function Fn($){var Cr="";return Bn($)&&!Hn($)&&$.childNodes&&$.childNodes.length&&Ee($.childNodes,(function(kr){var Pr;Rn(kr)&&kr.textContent&&(Cr+=(Pr=Cn(kr.textContent))!==null&&Pr!==void 0?Pr:"")})),E(Cr)}function An($){return C($.target)?$.srcElement||null:(Cr=$.target)!=null&&Cr.shadowRoot?$.composedPath()[0]||null:$.target||null;var Cr}Sn.__defaultExtensionClasses={},Sn.rn={trace:un=()=>{},debug:un,info:un,warn:un,error:un,fatal:un},(function($,Cr){for(var kr=0;Cr.length>kr;kr++)$.prototype[Cr[kr]]=$e($.prototype[Cr[kr]])})(Sn,["identify"]);var Mn=["a","button","form","input","select","textarea","label"];function Dn($,Cr){if(C(Cr))return!0;var kr,Pr=function(Ir){if(Cr.some((Fr=>Ir.matches(Fr))))return{v:!0}};for(var Rr of $)if(kr=Pr(Rr))return kr.v;return!1}function Ln($){var Cr=$.parentNode;return!(!Cr||!Tn(Cr))&&Cr}var Un=["next","previous","prev",">","<"],Nn=[".ph-no-rageclick",".ph-no-capture"],jn=$=>!$||$n($,"html")||!Tn($),zn=($,Cr)=>{if(!t$a||jn($))return{parentIsUsefulElement:!1,targetElementList:[]};for(var kr=!1,Pr=[$],Rr=$;Rr.parentNode&&!$n(Rr,"body");)if(kn(Rr.parentNode))Pr.push(Rr.parentNode.host),Rr=Rr.parentNode.host;else{var Ir=Ln(Rr);if(!Ir)break;if(Cr||Mn.indexOf(Ir.tagName.toLowerCase())>-1)kr=!0;else{var Fr=t$a.getComputedStyle(Ir);Fr&&Fr.getPropertyValue("cursor")==="pointer"&&(kr=!0)}Pr.push(Ir),Rr=Ir}return{parentIsUsefulElement:kr,targetElementList:Pr}};function Bn($){for(var Cr=$;Cr.parentNode&&!$n(Cr,"body");Cr=Cr.parentNode){var kr=In(Cr);if(w$1(kr,"ph-sensitive")||w$1(kr,"ph-no-capture"))return!1}if(w$1(In($),"ph-include"))return!0;var Pr=$.type||"";if(F(Pr))switch(Pr.toLowerCase()){case"hidden":case"password":return!1}var Rr=$.name||$.id||"";return!F(Rr)||!/^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i.test(Rr.replace(/[^a-zA-Z0-9]/g,""))}function Hn($){return!!($n($,"input")&&!["button","checkbox","submit","reset"].includes($.type)||$n($,"select")||$n($,"textarea")||$.getAttribute("contenteditable")==="true")}var qn="(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})",Vn=new RegExp("^(?:"+qn+")$"),Wn=new RegExp(qn),Gn="\\d{3}-?\\d{2}-?\\d{4}",Yn=new RegExp("^("+Gn+")$"),Jn=new RegExp("("+Gn+")");function Kn($,Cr){return Cr===void 0&&(Cr=!0),!(D($)||F($)&&($=E($),(Cr?Vn:Wn).test(($||"").replace(/[- ]/g,""))||(Cr?Yn:Jn).test($)))}function Xn($){var Cr=Fn($);return Kn(Cr=(Cr+" "+Qn($)).trim())?Cr:""}function Qn($){var Cr="";return $&&$.childNodes&&$.childNodes.length&&Ee($.childNodes,(function(kr){var Pr;if(kr&&((Pr=kr.tagName)==null?void 0:Pr.toLowerCase())==="span")try{var Rr=Fn(kr);Cr=(Cr+" "+Rr).trim(),kr.childNodes&&kr.childNodes.length&&(Cr=(Cr+" "+Qn(kr)).trim())}catch(Ir){yi.error("[AutoCapture]",Ir)}})),Cr}function Zn($){return $.replace(/"|\\"/g,'\\"')}function to($){var Cr=$.attr__class;return Cr?k(Cr)?Cr:Pn(Cr):void 0}class io{constructor(Cr){this.disabled=Cr===!1;var kr=O(Cr)?Cr:{};this.thresholdPx=kr.threshold_px||30,this.timeoutMs=kr.timeout_ms||1e3,this.clickCount=kr.click_count||3,this.clicks=[]}isRageClick(Cr,kr,Pr){if(this.disabled)return!1;var Rr=this.clicks[this.clicks.length-1];if(Rr&&Math.abs(Cr-Rr.x)+Math.abs(kr-Rr.y)<this.thresholdPx&&this.timeoutMs>Pr-Rr.timestamp){if(this.clicks.push({x:Cr,y:kr,timestamp:Pr}),this.clicks.length===this.clickCount)return!0}else this.clicks=[{x:Cr,y:kr,timestamp:Pr}];return!1}}var eo="$copy_autocapture",ro=wi("[AutoCapture]");function so($,Cr){return Cr.length>$?Cr.slice(0,$)+"...":Cr}function no($){if($.previousElementSibling)return $.previousElementSibling;var Cr=$;do Cr=Cr.previousSibling;while(Cr&&!Tn(Cr));return Cr}function oo($,Cr){for(var kr,Pr,{e:Rr,maskAllElementAttributes:Ir,maskAllText:Fr,elementAttributeIgnoreList:Lr,elementsChainAsString:qr}=Cr,fa=[$],pa=$;pa.parentNode&&!$n(pa,"body");)kn(pa.parentNode)?(fa.push(pa.parentNode.host),pa=pa.parentNode.host):(fa.push(pa.parentNode),pa=pa.parentNode);var ga,xa,ya=[],ba={},Aa=!1,ka=!1;if(Ee(fa,(Ia=>{var Ra=Bn(Ia);Ia.tagName.toLowerCase()==="a"&&(Aa=Ia.getAttribute("href"),Aa=Ra&&Aa&&Kn(Aa)&&Aa),w$1(In(Ia),"ph-no-capture")&&(ka=!0),ya.push((function(Oa,La,Ha,Wa){var Ja=Oa.tagName.toLowerCase(),Ya={tag_name:Ja};Mn.indexOf(Ja)>-1&&!Ha&&(Ya.$el_text=Ja.toLowerCase()==="a"||Ja.toLowerCase()==="button"?so(1024,Xn(Oa)):so(1024,Fn(Oa)));var Za=In(Oa);Za.length>0&&(Ya.classes=Za.filter((function(Fa){return Fa!==""}))),Ee(Oa.attributes,(function(Fa){var Va;if((!Hn(Oa)||["name","id","class","aria-label"].indexOf(Fa.name)!==-1)&&(Wa==null||!Wa.includes(Fa.name))&&!La&&Kn(Fa.value)&&(!F(Va=Fa.name)||Va.substring(0,10)!=="_ngcontent"&&Va.substring(0,7)!=="_nghost")){var Da=Fa.value;Fa.name==="class"&&(Da=Pn(Da).join(" ")),Ya["attr__"+Fa.name]=so(1024,Da)}}));for(var Qa=1,Na=1,Ka=Oa;Ka=no(Ka);)Qa++,Ka.tagName===Oa.tagName&&Na++;return Ya.nth_child=Qa,Ya.nth_of_type=Na,Ya})(Ia,Ir,Fr,Lr));var ja=(function(Oa){if(!Bn(Oa))return{};var La={};return Ee(Oa.attributes,(function(Ha){if(Ha.name&&Ha.name.indexOf("data-ph-capture-attribute")===0){var Wa=Ha.name.replace("data-ph-capture-attribute-",""),Ja=Ha.value;Wa&&Ja&&Kn(Ja)&&(La[Wa]=Ja)}})),La})(Ia);Se(ba,ja)})),ka)return{props:{},explicitNoCapture:ka};if(Fr||(ya[0].$el_text=$.tagName.toLowerCase()==="a"||$.tagName.toLowerCase()==="button"?Xn($):Fn($)),Aa){var Ea,Sa;ya[0].attr__href=Aa;var Ca=(Ea=nr(Aa))==null?void 0:Ea.host,Ta=t$a==null||(Sa=t$a.location)==null?void 0:Sa.host;Ca&&Ta&&Ca!==Ta&&(ga=Aa)}return{props:Se({$event_type:Rr.type,$ce_version:1},qr?{}:{$elements:ya},{$elements_chain:(xa=ya,(function(Ia){return Ia.map((Ra=>{var ja,Oa,La="";if(Ra.tag_name&&(La+=Ra.tag_name),Ra.attr_class)for(var Ha of(Ra.attr_class.sort(),Ra.attr_class))La+="."+Ha.replace(/"/g,"");var Wa=p$3({},Ra.text?{text:Ra.text}:{},{"nth-child":(ja=Ra.nth_child)!==null&&ja!==void 0?ja:0,"nth-of-type":(Oa=Ra.nth_of_type)!==null&&Oa!==void 0?Oa:0},Ra.href?{href:Ra.href}:{},Ra.attr_id?{attr_id:Ra.attr_id}:{},Ra.attributes),Ja={};return xe(Wa).sort(((Ya,Za)=>{var[Qa]=Ya,[Na]=Za;return Qa.localeCompare(Na)})).forEach((Ya=>{var[Za,Qa]=Ya;return Ja[Zn(Za.toString())]=Zn(Qa.toString())})),(La+=":")+xe(Ja).map((Ya=>{var[Za,Qa]=Ya;return Za+'="'+Qa+'"'})).join("")})).join(";")})((function(Ia){return Ia.map((Ra=>{var ja,Oa,La={text:(ja=Ra.$el_text)==null?void 0:ja.slice(0,400),tag_name:Ra.tag_name,href:(Oa=Ra.attr__href)==null?void 0:Oa.slice(0,2048),attr_class:to(Ra),attr_id:Ra.attr__id,nth_child:Ra.nth_child,nth_of_type:Ra.nth_of_type,attributes:{}};return xe(Ra).filter((Ha=>{var[Wa]=Ha;return Wa.indexOf("attr__")===0})).forEach((Ha=>{var[Wa,Ja]=Ha;return La.attributes[Wa]=Ja})),La}))})(xa)))},(kr=ya[0])!=null&&kr.$el_text?{$el_text:(Pr=ya[0])==null?void 0:Pr.$el_text}:{},ga&&Rr.type==="click"?{$external_click_url:ga}:{},ba)}}var ao=wi("[ExceptionAutocapture]");function lo($,Cr,kr){try{if(!(Cr in $))return()=>{};var Pr=$[Cr],Rr=kr(Pr);return P$1(Rr)&&(Rr.prototype=Rr.prototype||{},Object.defineProperties(Rr,{__posthog_wrapped__:{enumerable:!1,value:!0}})),$[Cr]=Rr,()=>{$[Cr]=Pr}}catch{return()=>{}}}var uo=wi("[TracingHeaders]"),ho=wi("[Web Vitals]"),vo=9e5,co="disabled",fo="lazy_loading",po="awaiting_config",_o="missing_config";wi("[SessionRecording]"),wi("[SessionRecording]");var go="[SessionRecording]",mo=wi(go),bo=wi("[Heatmaps]");function yo($){return O($)&&"clientX"in $&&"clientY"in $&&L($.clientX)&&L($.clientY)}var wo=wi("[Product Tours]"),Eo=["$set_once","$set"],So=wi("[SiteApps]"),xo="Error while initializing PostHog app with config id ";function To($,Cr,kr){if(D($))return!1;switch(kr){case"exact":return $===Cr;case"contains":var Pr=Cr.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/_/g,".").replace(/%/g,".*");return new RegExp(Pr,"i").test($);case"regex":try{return new RegExp(Cr).test($)}catch{return!1}default:return!1}}class $o{constructor(Cr){this.nn=new js,this.sn=(kr,Pr)=>this.an(kr,Pr)&&this.ln(kr,Pr)&&this.un(kr,Pr)&&this.hn(kr,Pr),this.an=(kr,Pr)=>Pr==null||!Pr.event||(kr==null?void 0:kr.event)===(Pr==null?void 0:Pr.event),this._instance=Cr,this.cn=new Set,this.dn=new Set}init(){var Cr,kr;C((Cr=this._instance)==null?void 0:Cr._addCaptureHook)||(kr=this._instance)==null||kr._addCaptureHook(((Pr,Rr)=>{this.on(Pr,Rr)}))}register(Cr){var kr,Pr;if(!C((kr=this._instance)==null?void 0:kr._addCaptureHook)&&(Cr.forEach((Fr=>{var Lr,qr;(Lr=this.dn)==null||Lr.add(Fr),(qr=Fr.steps)==null||qr.forEach((fa=>{var pa;(pa=this.cn)==null||pa.add((fa==null?void 0:fa.event)||"")}))})),(Pr=this._instance)!=null&&Pr.autocapture)){var Rr,Ir=new Set;Cr.forEach((Fr=>{var Lr;(Lr=Fr.steps)==null||Lr.forEach((qr=>{qr!=null&&qr.selector&&Ir.add(qr==null?void 0:qr.selector)}))})),(Rr=this._instance)==null||Rr.autocapture.setElementSelectors(Ir)}}on(Cr,kr){var Pr;kr!=null&&Cr.length!=0&&(this.cn.has(Cr)||this.cn.has(kr==null?void 0:kr.event))&&this.dn&&((Pr=this.dn)==null?void 0:Pr.size)>0&&this.dn.forEach((Rr=>{this.vn(kr,Rr)&&this.nn.emit("actionCaptured",Rr.name)}))}fn(Cr){this.onAction("actionCaptured",(kr=>Cr(kr)))}vn(Cr,kr){if((kr==null?void 0:kr.steps)==null)return!1;for(var Pr of kr.steps)if(this.sn(Cr,Pr))return!0;return!1}onAction(Cr,kr){return this.nn.on(Cr,kr)}ln(Cr,kr){if(kr!=null&&kr.url){var Pr,Rr=Cr==null||(Pr=Cr.properties)==null?void 0:Pr.$current_url;if(!Rr||typeof Rr!="string"||!To(Rr,kr.url,kr.url_matching||"contains"))return!1}return!0}un(Cr,kr){return!!this.pn(Cr,kr)&&!!this.gn(Cr,kr)&&!!this.mn(Cr,kr)}pn(Cr,kr){var Pr;if(kr==null||!kr.href)return!0;var Rr=this.yn(Cr);if(Rr.length>0)return Rr.some((Lr=>To(Lr.href,kr.href,kr.href_matching||"exact")));var Ir,Fr=(Cr==null||(Pr=Cr.properties)==null?void 0:Pr.$elements_chain)||"";return!!Fr&&To((Ir=Fr.match(/(?::|")href="(.*?)"/))?Ir[1]:"",kr.href,kr.href_matching||"exact")}gn(Cr,kr){var Pr;if(kr==null||!kr.text)return!0;var Rr=this.yn(Cr);if(Rr.length>0)return Rr.some((fa=>To(fa.text,kr.text,kr.text_matching||"exact")||To(fa.$el_text,kr.text,kr.text_matching||"exact")));var Ir,Fr,Lr,qr=(Cr==null||(Pr=Cr.properties)==null?void 0:Pr.$elements_chain)||"";return!!qr&&(Ir=(function(fa){for(var pa,ga=[],xa=/(?::|")text="(.*?)"/g;!D(pa=xa.exec(fa));)ga.includes(pa[1])||ga.push(pa[1]);return ga})(qr),Fr=kr.text,Lr=kr.text_matching||"exact",Ir.some((fa=>To(fa,Fr,Lr))))}mn(Cr,kr){var Pr,Rr;if(kr==null||!kr.selector)return!0;var Ir=Cr==null||(Pr=Cr.properties)==null?void 0:Pr.$element_selectors;if(Ir!=null&&Ir.includes(kr.selector))return!0;var Fr=(Cr==null||(Rr=Cr.properties)==null?void 0:Rr.$elements_chain)||"";if(kr.selector_regex&&Fr)try{return new RegExp(kr.selector_regex).test(Fr)}catch{return!1}return!1}yn(Cr){var kr;return(Cr==null||(kr=Cr.properties)==null?void 0:kr.$elements)==null?[]:Cr==null?void 0:Cr.properties.$elements}hn(Cr,kr){return kr==null||!kr.properties||kr.properties.length===0||Ys(kr.properties.reduce(((Pr,Rr)=>{var Ir=k(Rr.value)?Rr.value.map(String):Rr.value!=null?[String(Rr.value)]:[];return Pr[Rr.key]={values:Ir,operator:Rr.operator||"exact"},Pr}),{}),Cr==null?void 0:Cr.properties)}}class Ro{constructor(Cr){this._instance=Cr,this.bn=new Map,this.wn=new Map,this._n=new Map}In(Cr,kr){return!!Cr&&Ys(Cr.propertyFilters,kr==null?void 0:kr.properties)}Cn(Cr,kr){var Pr=new Map;return Cr.forEach((Rr=>{var Ir;(Ir=Rr.conditions)==null||(Ir=Ir[kr])==null||(Ir=Ir.values)==null||Ir.forEach((Fr=>{if(Fr!=null&&Fr.name){var Lr=Pr.get(Fr.name)||[];Lr.push(Rr.id),Pr.set(Fr.name,Lr)}}))})),Pr}Sn(Cr,kr,Pr){var Rr=(Pr===$r.Activation?this.bn:this.wn).get(Cr),Ir=[];return this.kn((Fr=>{Ir=Fr.filter((Lr=>Rr==null?void 0:Rr.includes(Lr.id)))})),Ir.filter((Fr=>{var Lr,qr=(Lr=Fr.conditions)==null||(Lr=Lr[Pr])==null||(Lr=Lr.values)==null?void 0:Lr.find((fa=>fa.name===Cr));return this.In(qr,kr)}))}register(Cr){var kr;C((kr=this._instance)==null?void 0:kr._addCaptureHook)||(this.xn(Cr),this.Tn(Cr))}Tn(Cr){var kr=Cr.filter((Pr=>{var Rr,Ir;return((Rr=Pr.conditions)==null?void 0:Rr.actions)&&((Ir=Pr.conditions)==null||(Ir=Ir.actions)==null||(Ir=Ir.values)==null?void 0:Ir.length)>0}));kr.length!==0&&(this.An==null&&(this.An=new $o(this._instance),this.An.init(),this.An.fn((Pr=>{this.onAction(Pr)}))),kr.forEach((Pr=>{var Rr,Ir,Fr,Lr,qr;Pr.conditions&&(Rr=Pr.conditions)!=null&&Rr.actions&&(Ir=Pr.conditions)!=null&&(Ir=Ir.actions)!=null&&Ir.values&&((Fr=Pr.conditions)==null||(Fr=Fr.actions)==null||(Fr=Fr.values)==null?void 0:Fr.length)>0&&((Lr=this.An)==null||Lr.register(Pr.conditions.actions.values),(qr=Pr.conditions)==null||(qr=qr.actions)==null||(qr=qr.values)==null||qr.forEach((fa=>{if(fa&&fa.name){var pa=this._n.get(fa.name);pa&&pa.push(Pr.id),this._n.set(fa.name,pa||[Pr.id])}})))})))}xn(Cr){var kr,Pr=Cr.filter((Ir=>{var Fr,Lr;return((Fr=Ir.conditions)==null?void 0:Fr.events)&&((Lr=Ir.conditions)==null||(Lr=Lr.events)==null||(Lr=Lr.values)==null?void 0:Lr.length)>0})),Rr=Cr.filter((Ir=>{var Fr,Lr;return((Fr=Ir.conditions)==null?void 0:Fr.cancelEvents)&&((Lr=Ir.conditions)==null||(Lr=Lr.cancelEvents)==null||(Lr=Lr.values)==null?void 0:Lr.length)>0}));Pr.length===0&&Rr.length===0||((kr=this._instance)==null||kr._addCaptureHook(((Ir,Fr)=>{this.onEvent(Ir,Fr)})),this.bn=this.Cn(Cr,$r.Activation),this.wn=this.Cn(Cr,$r.Cancellation))}onEvent(Cr,kr){var Pr,Rr=this.re(),Ir=this.En(),Fr=this.Rn(),Lr=((Pr=this._instance)==null||(Pr=Pr.persistence)==null?void 0:Pr.props[Ir])||[];if(Fr===Cr&&kr&&Lr.length>0){var qr,fa;Rr.info("event matched, removing item from activated items",{event:Cr,eventPayload:kr,existingActivatedItems:Lr});var pa=(kr==null||(qr=kr.properties)==null?void 0:qr.$survey_id)||(kr==null||(fa=kr.properties)==null?void 0:fa.$product_tour_id);if(pa){var ga=Lr.indexOf(pa);0>ga||(Lr.splice(ga,1),this.Nn(Lr))}}else{if(this.wn.has(Cr)){var xa=this.Sn(Cr,kr,$r.Cancellation);xa.length>0&&(Rr.info("cancel event matched, cancelling items",{event:Cr,itemsToCancel:xa.map((ba=>ba.id))}),xa.forEach((ba=>{var Aa=Lr.indexOf(ba.id);0>Aa||Lr.splice(Aa,1),this.Mn(ba.id)})),this.Nn(Lr))}if(this.bn.has(Cr)){Rr.info("event name matched",{event:Cr,eventPayload:kr,items:this.bn.get(Cr)});var ya=this.Sn(Cr,kr,$r.Activation);this.Nn(Lr.concat(ya.map((ba=>ba.id))||[]))}}}onAction(Cr){var kr,Pr=this.En(),Rr=((kr=this._instance)==null||(kr=kr.persistence)==null?void 0:kr.props[Pr])||[];this._n.has(Cr)&&this.Nn(Rr.concat(this._n.get(Cr)||[]))}Nn(Cr){var kr,Pr=this.re(),Rr=this.En(),Ir=[...new Set(Cr)].filter((Fr=>!this.Fn(Fr)));Pr.info("updating activated items",{activatedItems:Ir}),(kr=this._instance)==null||(kr=kr.persistence)==null||kr.register({[Rr]:Ir})}getActivatedIds(){var Cr,kr=this.En();return((Cr=this._instance)==null||(Cr=Cr.persistence)==null?void 0:Cr.props[kr])||[]}getEventToItemsMap(){return this.bn}On(){return this.An}}class ko extends Ro{constructor(Cr){super(Cr)}En(){return"$surveys_activated"}Rn(){return Ar.SHOWN}kn(Cr){var kr;(kr=this._instance)==null||kr.getSurveys(Cr)}Mn(Cr){var kr;(kr=this._instance)==null||kr.cancelPendingSurvey(Cr)}re(){return Zs}Fn(){return!1}getSurveys(){return this.getActivatedIds()}getEventToSurveys(){return this.getEventToItemsMap()}}var Po="SDK is not enabled or survey functionality is not yet loaded",Oo="Disabled. Not loading surveys.",Io=t$a!=null&&t$a.location?lr(t$a.location.hash,"__posthog")||lr(location.hash,"state"):null,Co="_postHogToolbarParams",Fo=wi("[Toolbar]"),Ao=wi("[FeatureFlags]"),Mo=wi("[FeatureFlags]",{debugEnabled:!0}),Do=`" failed. Feature flags didn't load in time.`,Lo="$active_feature_flags",Uo="$override_feature_flags",No="$feature_flag_request_id",jo=$=>{for(var Cr={},kr=0;$.length>kr;kr++)Cr[$[kr]]=!0;return Cr},zo=$=>{var Cr={};for(var[kr,Pr]of xe($||{}))Pr&&(Cr[kr]=Pr);return Cr},Bo=wi("[Error tracking]"),Ho="Refusing to render web experiment since the viewer is a likely bot",qo={icontains:($,Cr)=>!!t$a&&Cr.href.toLowerCase().indexOf($.toLowerCase())>-1,not_icontains:($,Cr)=>!!t$a&&Cr.href.toLowerCase().indexOf($.toLowerCase())===-1,regex:($,Cr)=>!!t$a&&qs(Cr.href,$),not_regex:($,Cr)=>!!t$a&&!qs(Cr.href,$),exact:($,Cr)=>Cr.href===$,is_not:($,Cr)=>Cr.href!==$};class Vo{get Rt(){return this._instance.config}constructor(Cr){var kr=this;this.getWebExperimentsAndEvaluateDisplayLogic=function(Pr){Pr===void 0&&(Pr=!1),kr.getWebExperiments((Rr=>{Vo.Pn("retrieved web experiments from the server"),kr.Ln=new Map,Rr.forEach((Ir=>{if(Ir.feature_flag_key){var Fr;kr.Ln&&(Vo.Pn("setting flag key ",Ir.feature_flag_key," to web experiment ",Ir),(Fr=kr.Ln)==null||Fr.set(Ir.feature_flag_key,Ir));var Lr=kr._instance.getFeatureFlag(Ir.feature_flag_key);F(Lr)&&Ir.variants[Lr]&&kr.Dn(Ir.name,Lr,Ir.variants[Lr].transforms)}else if(Ir.variants)for(var qr in Ir.variants){var fa=Ir.variants[qr];Vo.Bn(fa)&&kr.Dn(Ir.name,qr,fa.transforms)}}))}),Pr)},this._instance=Cr,this._instance.onFeatureFlags((Pr=>{this.onFeatureFlags(Pr)}))}initialize(){}onFeatureFlags(Cr){if(this._is_bot())Vo.Pn(Ho);else if(!this.Rt.disable_web_experiments){if(D(this.Ln))return this.Ln=new Map,this.loadIfEnabled(),void this.previewWebExperiment();Vo.Pn("applying feature flags",Cr),Cr.forEach((kr=>{var Pr;if(this.Ln&&(Pr=this.Ln)!=null&&Pr.has(kr)){var Rr,Ir=this._instance.getFeatureFlag(kr),Fr=(Rr=this.Ln)==null?void 0:Rr.get(kr);Ir&&Fr!=null&&Fr.variants[Ir]&&this.Dn(Fr.name,Ir,Fr.variants[Ir].transforms)}}))}}previewWebExperiment(){var Cr=Vo.getWindowLocation();if(Cr!=null&&Cr.search){var kr=or(Cr==null?void 0:Cr.search,"__experiment_id"),Pr=or(Cr==null?void 0:Cr.search,"__experiment_variant");kr&&Pr&&(Vo.Pn("previewing web experiments "+kr+" && "+Pr),this.getWebExperiments((Rr=>{this.jn(parseInt(kr),Pr,Rr)}),!1,!0))}}loadIfEnabled(){this.Rt.disable_web_experiments||this.getWebExperimentsAndEvaluateDisplayLogic()}getWebExperiments(Cr,kr,Pr){if(this.Rt.disable_web_experiments&&!Pr)return Cr([]);var Rr=this._instance.get_property("$web_experiments");if(Rr&&!kr)return Cr(Rr);this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/web_experiments/?token="+this.Rt.token),method:"GET",callback:Ir=>Cr(Ir.statusCode===200&&Ir.json&&Ir.json.experiments||[])})}jn(Cr,kr,Pr){var Rr=Pr.filter((Ir=>Ir.id===Cr));Rr&&Rr.length>0&&(Vo.Pn("Previewing web experiment ["+Rr[0].name+"] with variant ["+kr+"]"),this.Dn(Rr[0].name,kr,Rr[0].variants[kr].transforms))}static Bn(Cr){return!D(Cr.conditions)&&Vo.qn(Cr)&&Vo.Zn(Cr)}static qn(Cr){var kr;if(D(Cr.conditions)||D((kr=Cr.conditions)==null?void 0:kr.url))return!0;var Pr,Rr,Ir,Fr=Vo.getWindowLocation();return!!Fr&&((Pr=Cr.conditions)==null||!Pr.url||qo[(Rr=(Ir=Cr.conditions)==null?void 0:Ir.urlMatchType)!==null&&Rr!==void 0?Rr:"icontains"](Cr.conditions.url,Fr))}static getWindowLocation(){return t$a==null?void 0:t$a.location}static Zn(Cr){var kr;if(D(Cr.conditions)||D((kr=Cr.conditions)==null?void 0:kr.utm))return!0;var Pr=fr$1();if(Pr.utm_source){var Rr,Ir,Fr,Lr,qr,fa,pa,ga,xa=(Rr=Cr.conditions)==null||(Rr=Rr.utm)==null||!Rr.utm_campaign||((Ir=Cr.conditions)==null||(Ir=Ir.utm)==null?void 0:Ir.utm_campaign)==Pr.utm_campaign,ya=(Fr=Cr.conditions)==null||(Fr=Fr.utm)==null||!Fr.utm_source||((Lr=Cr.conditions)==null||(Lr=Lr.utm)==null?void 0:Lr.utm_source)==Pr.utm_source,ba=(qr=Cr.conditions)==null||(qr=qr.utm)==null||!qr.utm_medium||((fa=Cr.conditions)==null||(fa=fa.utm)==null?void 0:fa.utm_medium)==Pr.utm_medium,Aa=(pa=Cr.conditions)==null||(pa=pa.utm)==null||!pa.utm_term||((ga=Cr.conditions)==null||(ga=ga.utm)==null?void 0:ga.utm_term)==Pr.utm_term;return xa&&ba&&Aa&&ya}return!1}static Pn(Cr){for(var kr=arguments.length,Pr=new Array(kr>1?kr-1:0),Rr=1;kr>Rr;Rr++)Pr[Rr-1]=arguments[Rr];yi.info("[WebExperiments] "+Cr,Pr)}Dn(Cr,kr,Pr){this._is_bot()?Vo.Pn(Ho):kr!=="control"?Pr.forEach((Rr=>{if(Rr.selector){var Ir;Vo.Pn("applying transform of variant "+kr+" for experiment "+Cr+" ",Rr);var Fr=(Ir=document)==null?void 0:Ir.querySelectorAll(Rr.selector);Fr==null||Fr.forEach((Lr=>{var qr=Lr;Rr.html&&(qr.innerHTML=Rr.html),Rr.css&&qr.setAttribute("style",Rr.css)}))}})):Vo.Pn("Control variants leave the page unmodified.")}_is_bot(){return e$n&&this._instance?Hs(e$n,this.Rt.custom_blocked_useragents):void 0}}var Wo=wi("[Conversations]"),Go="Conversations not available yet.",Yo={trace:{text:"TRACE",number:1},debug:{text:"DEBUG",number:5},info:{text:"INFO",number:9},warn:{text:"WARN",number:13},error:{text:"ERROR",number:17},fatal:{text:"FATAL",number:21}},Jo=Yo.info;function Ko($){if(N$1($))return{boolValue:$};if(L($))return Number.isInteger($)?{intValue:$}:{doubleValue:$};if(typeof $=="string")return{stringValue:$};if(k($))return{arrayValue:{values:$.map((Cr=>Ko(Cr)))}};try{return{stringValue:JSON.stringify($)}}catch{return{stringValue:String($)}}}function Xo($){var Cr=[];for(var kr in $){var Pr=$[kr];M$1(Pr)||C(Pr)||Cr.push({key:kr,value:Ko(Pr)})}return Cr}var Qo={featureFlags:class{constructor($){this.$n=!1,this.Vn=!1,this.Hn=!1,this.zn=!1,this.Un=!1,this.Yn=!1,this.Gn=!1,this.Wn=!1,this._instance=$,this.featureFlagEventHandlers=[]}get Rt(){return this._instance.config}get Xi(){return this._instance.persistence}Xn($){return this._instance.get_property($)}Jn(){var $,Cr;return($=(Cr=this.Xi)==null?void 0:Cr.pi(this.Rt.feature_flag_cache_ttl_ms))!==null&&$!==void 0&&$}Kn(){return!!this.Jn()&&(this.Wn||this.Hn||(this.Wn=!0,Ao.warn("Feature flag cache is stale, triggering refresh..."),this.reloadFeatureFlags()),!0)}Qn(){var $,Cr=($=this.Rt.evaluation_contexts)!==null&&$!==void 0?$:this.Rt.evaluation_environments;return!this.Rt.evaluation_environments||this.Rt.evaluation_contexts||this.Gn||(Ao.warn("evaluation_environments is deprecated. Use evaluation_contexts instead. evaluation_environments will be removed in a future version."),this.Gn=!0),Cr!=null&&Cr.length?Cr.filter((kr=>{var Pr=kr&&typeof kr=="string"&&kr.trim().length>0;return Pr||Ao.error("Invalid evaluation context found:",kr,"Expected non-empty string"),Pr})):[]}ts(){return this.Qn().length>0}initialize(){var $,Cr,{config:kr}=this._instance,Pr=($=(Cr=kr.bootstrap)==null?void 0:Cr.featureFlags)!==null&&$!==void 0?$:{};if(Object.keys(Pr).length){var Rr,Ir,Fr=(Rr=(Ir=kr.bootstrap)==null?void 0:Ir.featureFlagPayloads)!==null&&Rr!==void 0?Rr:{},Lr=Object.keys(Pr).filter((fa=>!!Pr[fa])).reduce(((fa,pa)=>(fa[pa]=Pr[pa]||!1,fa)),{}),qr=Object.keys(Fr).filter((fa=>Lr[fa])).reduce(((fa,pa)=>(Fr[pa]&&(fa[pa]=Fr[pa]),fa)),{});this.receivedFeatureFlags({featureFlags:Lr,featureFlagPayloads:qr})}}updateFlags($,Cr,kr){var Pr=kr!=null&&kr.merge?this.getFlagVariants():{},Rr=kr!=null&&kr.merge?this.getFlagPayloads():{},Ir=p$3({},Pr,$),Fr=p$3({},Rr,Cr),Lr={};for(var[qr,fa]of Object.entries(Ir)){var pa=typeof fa=="string";Lr[qr]={key:qr,enabled:!!pa||!!fa,variant:pa?fa:void 0,reason:void 0,metadata:C(Fr==null?void 0:Fr[qr])?void 0:{id:0,version:void 0,description:void 0,payload:Fr[qr]}}}this.receivedFeatureFlags({flags:Lr})}get hasLoadedFlags(){return this.Vn}getFlags(){return Object.keys(this.getFlagVariants())}getFlagsWithDetails(){var $=this.Xn(Bi),Cr=this.Xn(Uo),kr=this.Xn(qi);if(!kr&&!Cr)return $||{};var Pr=Se({},$||{}),Rr=[...new Set([...Object.keys(kr||{}),...Object.keys(Cr||{})])];for(var Ir of Rr){var Fr,Lr,qr=Pr[Ir],fa=Cr==null?void 0:Cr[Ir],pa=C(fa)?(Fr=qr==null?void 0:qr.enabled)!==null&&Fr!==void 0&&Fr:!!fa,ga=C(fa)?qr.variant:typeof fa=="string"?fa:void 0,xa=kr==null?void 0:kr[Ir],ya=p$3({},qr,{enabled:pa,variant:pa?ga??(qr==null?void 0:qr.variant):void 0});pa!==(qr==null?void 0:qr.enabled)&&(ya.original_enabled=qr==null?void 0:qr.enabled),ga!==(qr==null?void 0:qr.variant)&&(ya.original_variant=qr==null?void 0:qr.variant),xa&&(ya.metadata=p$3({},qr==null?void 0:qr.metadata,{payload:xa,original_payload:qr==null||(Lr=qr.metadata)==null?void 0:Lr.payload})),Pr[Ir]=ya}return this.$n||(Ao.warn(" Overriding feature flag details!",{flagDetails:$,overriddenPayloads:kr,finalDetails:Pr}),this.$n=!0),Pr}getFlagVariants(){var $=this.Xn(ji),Cr=this.Xn(Uo);if(!Cr)return $||{};for(var kr=Se({},$),Pr=Object.keys(Cr),Rr=0;Pr.length>Rr;Rr++)kr[Pr[Rr]]=Cr[Pr[Rr]];return this.$n||(Ao.warn(" Overriding feature flags!",{enabledFlags:$,overriddenFlags:Cr,finalFlags:kr}),this.$n=!0),kr}getFlagPayloads(){var $=this.Xn(Hi),Cr=this.Xn(qi);if(!Cr)return $||{};for(var kr=Se({},$||{}),Pr=Object.keys(Cr),Rr=0;Pr.length>Rr;Rr++)kr[Pr[Rr]]=Cr[Pr[Rr]];return this.$n||(Ao.warn(" Overriding feature flag payloads!",{flagPayloads:$,overriddenPayloads:Cr,finalPayloads:kr}),this.$n=!0),kr}reloadFeatureFlags(){this.zn||this.Rt.advanced_disable_feature_flags||this.es||(this._instance.kr.emit("featureFlagsReloading",!0),this.es=setTimeout((()=>{this.rs()}),5))}ns(){clearTimeout(this.es),this.es=void 0}ensureFlagsLoaded(){this.Vn||this.Hn||this.es||this.reloadFeatureFlags()}setAnonymousDistinctId($){this.$anon_distinct_id=$}setReloadingPaused($){this.zn=$}rs($){var Cr;if(this.ns(),!this._instance.ki())if(this.Hn)this.Un=!0;else{var kr=this.Rt.token,Pr=this.Xn(Ti),Rr={token:kr,distinct_id:this._instance.get_distinct_id(),groups:this._instance.getGroups(),$anon_distinct_id:this.$anon_distinct_id,person_properties:p$3({},((Cr=this.Xi)==null?void 0:Cr.get_initial_props())||{},this.Xn(Vi)||{}),group_properties:this.Xn(Wi),timezone:Er()};M$1(Pr)||C(Pr)||(Rr.$device_id=Pr),($!=null&&$.disableFlags||this.Rt.advanced_disable_feature_flags)&&(Rr.disable_flags=!0),this.ts()&&(Rr.evaluation_contexts=this.Qn());var Ir=this._instance.requestRouter.endpointFor("flags","/flags/?v=2"+(this.Rt.advanced_only_evaluate_survey_feature_flags?"&only_evaluate_survey_feature_flags=true":""));this.Hn=!0,this._instance._send_request({method:"POST",url:Ir,data:Rr,compression:this.Rt.disable_compression?void 0:Vr.Base64,timeout:this.Rt.feature_flag_request_timeout_ms,callback:Fr=>{var Lr,qr,fa,pa=!0;if(Fr.statusCode===200&&(this.Un||(this.$anon_distinct_id=void 0),pa=!1),this.Hn=!1,!Rr.disable_flags||this.Un){this.Yn=!pa;var ga=[];Fr.error?Fr.error instanceof Error?ga.push(Fr.error.name==="AbortError"?"timeout":"connection_error"):ga.push("unknown_error"):Fr.statusCode!==200&&ga.push("api_error_"+Fr.statusCode),(Lr=Fr.json)!=null&&Lr.errorsWhileComputingFlags&&ga.push("errors_while_computing_flags");var xa,ya=!((qr=Fr.json)==null||(qr=qr.quotaLimited)==null||!qr.includes("feature_flags"));ya&&ga.push("quota_limited"),(fa=this.Xi)==null||fa.register({[Xi]:ga}),ya?Ao.warn("You have hit your feature flags quota limit, and will not be able to load feature flags until the quota is reset. Please visit https://posthog.com/docs/billing/limits-alerts to learn more."):(Rr.disable_flags||this.receivedFeatureFlags((xa=Fr.json)!==null&&xa!==void 0?xa:{},pa,{partialResponse:!!this.Rt.advanced_only_evaluate_survey_feature_flags}),this.Un&&(this.Un=!1,this.rs()))}}})}}getFeatureFlag($,Cr){var kr;if(Cr===void 0&&(Cr={}),!Cr.fresh||this.Yn)if(this.Vn||this.getFlags()&&this.getFlags().length>0){if(!this.Kn()){var Pr=this.getFeatureFlagResult($,Cr);return(kr=Pr==null?void 0:Pr.variant)!==null&&kr!==void 0?kr:Pr==null?void 0:Pr.enabled}}else Ao.warn('getFeatureFlag for key "'+$+Do)}getFeatureFlagDetails($){return this.getFlagsWithDetails()[$]}getFeatureFlagPayload($){var Cr=this.getFeatureFlagResult($,{send_event:!1});return Cr==null?void 0:Cr.payload}getFeatureFlagResult($,Cr){if(Cr===void 0&&(Cr={}),!Cr.fresh||this.Yn)if(this.Vn||this.getFlags()&&this.getFlags().length>0){if(!this.Kn()){var kr=this.getFlagVariants(),Pr=$ in kr,Rr=kr[$],Ir=this.getFlagPayloads()[$],Fr=String(Rr),Lr=this.Xn(No)||void 0,qr=this.Xn(Qi)||void 0,fa=this.Xn(Ji)||{};if(this.Rt.advanced_feature_flags_dedup_per_session){var pa,ga=this._instance.get_session_id(),xa=this.Xn(Ki);ga&&ga!==xa&&(fa={},(pa=this.Xi)==null||pa.register({[Ji]:fa,[Ki]:ga}))}if((Cr.send_event||!("send_event"in Cr))&&(!($ in fa)||!fa[$].includes(Fr))){var ya,ba,Aa,ka,Ea,Sa,Ca,Ta,Ia,Ra;k(fa[$])?fa[$].push(Fr):fa[$]=[Fr],(ya=this.Xi)==null||ya.register({[Ji]:fa});var ja=this.getFeatureFlagDetails($),Oa=[...(ba=this.Xn(Xi))!==null&&ba!==void 0?ba:[]];C(Rr)&&Oa.push("flag_missing");var La={$feature_flag:$,$feature_flag_response:Rr,$feature_flag_payload:Ir||null,$feature_flag_request_id:Lr,$feature_flag_evaluated_at:qr,$feature_flag_bootstrapped_response:((Aa=this.Rt.bootstrap)==null||(Aa=Aa.featureFlags)==null?void 0:Aa[$])||null,$feature_flag_bootstrapped_payload:((ka=this.Rt.bootstrap)==null||(ka=ka.featureFlagPayloads)==null?void 0:ka[$])||null,$used_bootstrap_value:!this.Yn};C(ja==null||(Ea=ja.metadata)==null?void 0:Ea.version)||(La.$feature_flag_version=ja.metadata.version);var Ha,Wa=(Sa=ja==null||(Ca=ja.reason)==null?void 0:Ca.description)!==null&&Sa!==void 0?Sa:ja==null||(Ta=ja.reason)==null?void 0:Ta.code;Wa&&(La.$feature_flag_reason=Wa),ja!=null&&(Ia=ja.metadata)!=null&&Ia.id&&(La.$feature_flag_id=ja.metadata.id),C(ja==null?void 0:ja.original_variant)&&C(ja==null?void 0:ja.original_enabled)||(La.$feature_flag_original_response=C(ja.original_variant)?ja.original_enabled:ja.original_variant),ja!=null&&(Ra=ja.metadata)!=null&&Ra.original_payload&&(La.$feature_flag_original_payload=ja==null||(Ha=ja.metadata)==null?void 0:Ha.original_payload),Oa.length&&(La.$feature_flag_error=Oa.join(",")),this._instance.capture("$feature_flag_called",La)}if(Pr){var Ja=Ir;if(!C(Ir))try{Ja=JSON.parse(Ir)}catch{}return{key:$,enabled:!!Rr,variant:typeof Rr=="string"?Rr:void 0,payload:Ja}}}}else Ao.warn('getFeatureFlagResult for key "'+$+Do)}getRemoteConfigPayload($,Cr){var kr=this.Rt.token,Pr={distinct_id:this._instance.get_distinct_id(),token:kr};this.ts()&&(Pr.evaluation_contexts=this.Qn()),this._instance._send_request({method:"POST",url:this._instance.requestRouter.endpointFor("flags","/flags/?v=2"),data:Pr,compression:this.Rt.disable_compression?void 0:Vr.Base64,timeout:this.Rt.feature_flag_request_timeout_ms,callback(Rr){var Ir,Fr=(Ir=Rr.json)==null?void 0:Ir.featureFlagPayloads;Cr((Fr==null?void 0:Fr[$])||void 0)}})}isFeatureEnabled($,Cr){if(Cr===void 0&&(Cr={}),!Cr.fresh||this.Yn){if(this.Vn||this.getFlags()&&this.getFlags().length>0){var kr=this.getFeatureFlag($,Cr);return C(kr)?void 0:!!kr}Ao.warn('isFeatureEnabled for key "'+$+Do)}}addFeatureFlagsHandler($){this.featureFlagEventHandlers.push($)}removeFeatureFlagsHandler($){this.featureFlagEventHandlers=this.featureFlagEventHandlers.filter((Cr=>Cr!==$))}receivedFeatureFlags($,Cr,kr){if(this.Xi){this.Vn=!0;var Pr=this.getFlagVariants(),Rr=this.getFlagPayloads(),Ir=this.getFlagsWithDetails();(function(Fr,Lr,qr,fa,pa,ga){qr===void 0&&(qr={}),fa===void 0&&(fa={}),pa===void 0&&(pa={});var xa=(Oa=>{var La=Oa.flags;return La?(Oa.featureFlags=Object.fromEntries(Object.keys(La).map((Ha=>{var Wa;return[Ha,(Wa=La[Ha].variant)!==null&&Wa!==void 0?Wa:La[Ha].enabled]}))),Oa.featureFlagPayloads=Object.fromEntries(Object.keys(La).filter((Ha=>La[Ha].enabled)).filter((Ha=>{var Wa;return(Wa=La[Ha].metadata)==null?void 0:Wa.payload})).map((Ha=>{var Wa;return[Ha,(Wa=La[Ha].metadata)==null?void 0:Wa.payload]})))):Ao.warn("Using an older version of the feature flags endpoint. Please upgrade your PostHog server to the latest version"),Oa})(Fr),ya=xa.flags,ba=xa.featureFlags,Aa=xa.featureFlagPayloads;if(ba){var ka=Fr.requestId,Ea=Fr.evaluatedAt;if(k(ba)){Ao.warn("v1 of the feature flags endpoint is deprecated. Please use the latest version.");var Sa={};if(ba)for(var Ca=0;ba.length>Ca;Ca++)Sa[ba[Ca]]=!0;Lr&&Lr.register({[Lo]:ba,[ji]:Sa})}else{var Ta=ba,Ia=Aa,Ra=ya;if(ga!=null&&ga.partialResponse)Ta=p$3({},qr,Ta),Ia=p$3({},fa,Ia),Ra=p$3({},pa,Ra);else if(Fr.errorsWhileComputingFlags)if(ya){var ja=new Set(Object.keys(ya).filter((Oa=>{var La;return!((La=ya[Oa])!=null&&La.failed)})));Ta=p$3({},qr,Object.fromEntries(Object.entries(Ta).filter((Oa=>{var[La]=Oa;return ja.has(La)})))),Ia=p$3({},fa,Object.fromEntries(Object.entries(Ia||{}).filter((Oa=>{var[La]=Oa;return ja.has(La)})))),Ra=p$3({},pa,Object.fromEntries(Object.entries(Ra||{}).filter((Oa=>{var[La]=Oa;return ja.has(La)}))))}else Ta=p$3({},qr,Ta),Ia=p$3({},fa,Ia),Ra=p$3({},pa,Ra);Lr&&Lr.register(p$3({[Lo]:Object.keys(zo(Ta)),[ji]:Ta||{},[Hi]:Ia||{},[Bi]:Ra||{}},ka?{[No]:ka}:{},Ea?{[Qi]:Ea}:{}))}}})($,this.Xi,Pr,Rr,Ir,kr),Cr||(this.Wn=!1),this.ss(Cr)}}override($,Cr){Cr===void 0&&(Cr=!1),Ao.warn("override is deprecated. Please use overrideFeatureFlags instead."),this.overrideFeatureFlags({flags:$,suppressWarning:Cr})}overrideFeatureFlags($){if(!this._instance.__loaded||!this.Xi)return Ao.uninitializedWarning("posthog.featureFlags.overrideFeatureFlags");if($===!1)return this.Xi.unregister(Uo),this.Xi.unregister(qi),this.ss(),Mo.info("All overrides cleared");if(k($)){var Cr=jo($);return this.Xi.register({[Uo]:Cr}),this.ss(),Mo.info("Flag overrides set",{flags:$})}if($&&typeof $=="object"&&("flags"in $||"payloads"in $)){var kr,Pr=$;if(this.$n=!!((kr=Pr.suppressWarning)!==null&&kr!==void 0&&kr),"flags"in Pr){if(Pr.flags===!1)this.Xi.unregister(Uo),Mo.info("Flag overrides cleared");else if(Pr.flags){if(k(Pr.flags)){var Rr=jo(Pr.flags);this.Xi.register({[Uo]:Rr})}else this.Xi.register({[Uo]:Pr.flags});Mo.info("Flag overrides set",{flags:Pr.flags})}}return"payloads"in Pr&&(Pr.payloads===!1?(this.Xi.unregister(qi),Mo.info("Payload overrides cleared")):Pr.payloads&&(this.Xi.register({[qi]:Pr.payloads}),Mo.info("Payload overrides set",{payloads:Pr.payloads}))),void this.ss()}if($&&typeof $=="object")return this.Xi.register({[Uo]:$}),this.ss(),Mo.info("Flag overrides set",{flags:$});Ao.warn("Invalid overrideOptions provided to overrideFeatureFlags",{overrideOptions:$})}onFeatureFlags($){if(this.addFeatureFlagsHandler($),this.Vn){var{flags:Cr,flagVariants:kr}=this.os();$(Cr,kr)}return()=>this.removeFeatureFlagsHandler($)}updateEarlyAccessFeatureEnrollment($,Cr,kr){var Pr,Rr=(this.Xn(zi)||[]).find((qr=>qr.flagKey===$)),Ir={["$feature_enrollment/"+$]:Cr},Fr={$feature_flag:$,$feature_enrollment:Cr,$set:Ir};Rr&&(Fr.$early_access_feature_name=Rr.name),kr&&(Fr.$feature_enrollment_stage=kr),this._instance.capture("$feature_enrollment_update",Fr),this.setPersonPropertiesForFlags(Ir,!1);var Lr=p$3({},this.getFlagVariants(),{[$]:Cr});(Pr=this.Xi)==null||Pr.register({[Lo]:Object.keys(zo(Lr)),[ji]:Lr}),this.ss()}getEarlyAccessFeatures($,Cr,kr){Cr===void 0&&(Cr=!1);var Pr=this.Xn(zi),Rr=kr?"&"+kr.map((Ir=>"stage="+Ir)).join("&"):"";if(Pr&&!Cr)return $(Pr);this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/early_access_features/?token="+this.Rt.token+Rr),method:"GET",callback:Ir=>{var Fr,Lr;if(Ir.json){var qr=Ir.json.earlyAccessFeatures;return(Fr=this.Xi)==null||Fr.unregister(zi),(Lr=this.Xi)==null||Lr.register({[zi]:qr}),$(qr)}}})}os(){var $=this.getFlags(),Cr=this.getFlagVariants();return{flags:$.filter((kr=>Cr[kr])),flagVariants:Object.keys(Cr).filter((kr=>Cr[kr])).reduce(((kr,Pr)=>(kr[Pr]=Cr[Pr],kr)),{})}}ss($){var{flags:Cr,flagVariants:kr}=this.os();this.featureFlagEventHandlers.forEach((Pr=>Pr(Cr,kr,{errorsLoading:$})))}setPersonPropertiesForFlags($,Cr){Cr===void 0&&(Cr=!0);var kr=this.Xn(Vi)||{},Pr=($==null?void 0:$.$set)||($!=null&&$.$set_once?{}:$),Rr=$==null?void 0:$.$set_once,Ir={};if(Rr)for(var Fr in Rr)({}).hasOwnProperty.call(Rr,Fr)&&(Fr in kr||(Ir[Fr]=Rr[Fr]));this._instance.register({[Vi]:p$3({},kr,Ir,Pr)}),Cr&&this._instance.reloadFeatureFlags()}resetPersonPropertiesForFlags(){this._instance.unregister(Vi)}setGroupPropertiesForFlags($,Cr){Cr===void 0&&(Cr=!0);var kr=this.Xn(Wi)||{};Object.keys(kr).length!==0&&Object.keys(kr).forEach((Pr=>{kr[Pr]=p$3({},kr[Pr],$[Pr]),delete $[Pr]})),this._instance.register({[Wi]:p$3({},kr,$)}),Cr&&this._instance.reloadFeatureFlags()}resetGroupPropertiesForFlags($){if($){var Cr=this.Xn(Wi)||{};this._instance.register({[Wi]:p$3({},Cr,{[$]:{}})})}else this._instance.unregister(Wi)}reset(){this.Vn=!1,this.Hn=!1,this.zn=!1,this.Un=!1,this.Yn=!1,this.$anon_distinct_id=void 0,this.ns(),this.$n=!1}}},Zo={sessionRecording:class{get Rt(){return this._instance.config}get Xi(){return this._instance.persistence}get started(){var $;return!(($=this.ls)==null||!$.isStarted)}get status(){var $,Cr;return this.us===po||this.us===_o?this.us:($=(Cr=this.ls)==null?void 0:Cr.status)!==null&&$!==void 0?$:this.us}constructor($){if(this._forceAllowLocalhostNetworkCapture=!1,this.us=co,this.hs=void 0,this._instance=$,!this._instance.sessionManager)throw mo.error("started without valid sessionManager"),new Error(go+" started without valid sessionManager. This is a bug.");if(this.Rt.cookieless_mode===de)throw new Error(go+' cannot be used with cookieless_mode="always"')}initialize(){this.startIfEnabledOrStop()}get cs(){var $,Cr=!(($=this._instance.get_property(Li))==null||!$.enabled),kr=!this.Rt.disable_session_recording,Pr=this.Rt.disable_session_recording||this._instance.consent.isOptedOut();return t$a&&Cr&&kr&&!Pr}startIfEnabledOrStop($){var Cr;if(!this.cs||(Cr=this.ls)==null||!Cr.isStarted){var kr=!C(Object.assign)&&!C(Array.from);this.cs&&kr?(this.ds($),mo.info("starting")):(this.us=co,this.stopRecording())}}ds($){var Cr,kr,Pr;this.cs&&(this.us!==po&&this.us!==_o&&(this.us=fo),h$3!=null&&(Cr=h$3.__PosthogExtensions__)!=null&&(Cr=Cr.rrweb)!=null&&Cr.record&&(kr=h$3.__PosthogExtensions__)!=null&&kr.initSessionRecording?this.vs($):(Pr=h$3.__PosthogExtensions__)==null||Pr.loadExternalDependency==null||Pr.loadExternalDependency(this._instance,this.fs,(Rr=>{if(Rr)return mo.error("could not load recorder",Rr);this.vs($)})))}stopRecording(){var $,Cr;($=this.hs)==null||$.call(this),this.hs=void 0,(Cr=this.ls)==null||Cr.stop()}ps(){var $,Cr;($=this.hs)==null||$.call(this),this.hs=void 0,(Cr=this.ls)==null||Cr.discard()}gs(){var $;($=this.Xi)==null||$.unregister(Ni)}ys($,Cr){if(D($))return null;var kr,Pr=L($)?$:parseFloat($);return typeof(kr=Pr)!="number"||!Number.isFinite(kr)||0>kr||kr>1?(mo.warn(Cr+" must be between 0 and 1. Ignoring invalid value:",$),null):Pr}bs($){if(this.Xi){var Cr,kr,Pr=this.Xi,Rr=()=>{var Ir,Fr=$.sessionRecording===!1?void 0:$.sessionRecording,Lr=this.ys((Ir=this.Rt.session_recording)==null?void 0:Ir.sampleRate,"session_recording.sampleRate"),qr=this.ys(Fr==null?void 0:Fr.sampleRate,"remote config sampleRate"),fa=Lr??qr;D(fa)&&this.gs();var pa=Fr==null?void 0:Fr.minimumDurationMilliseconds;Pr.register({[Li]:p$3({cache_timestamp:Date.now(),enabled:!!Fr},Fr,{networkPayloadCapture:p$3({capturePerformance:$.capturePerformance},Fr==null?void 0:Fr.networkPayloadCapture),canvasRecording:{enabled:Fr==null?void 0:Fr.recordCanvas,fps:Fr==null?void 0:Fr.canvasFps,quality:Fr==null?void 0:Fr.canvasQuality},sampleRate:fa,minimumDurationMilliseconds:C(pa)?null:pa,endpoint:Fr==null?void 0:Fr.endpoint,triggerMatchType:Fr==null?void 0:Fr.triggerMatchType,masking:Fr==null?void 0:Fr.masking,urlTriggers:Fr==null?void 0:Fr.urlTriggers,version:Fr==null?void 0:Fr.version,triggerGroups:Fr==null?void 0:Fr.triggerGroups})})};Rr(),(Cr=this.hs)==null||Cr.call(this),this.hs=(kr=this._instance.sessionManager)==null?void 0:kr.onSessionId(Rr)}}onRemoteConfig($){return"sessionRecording"in $?$.sessionRecording===!1?(this.bs($),void this.ps()):(this.bs($),void this.startIfEnabledOrStop()):(this.us===po&&(this.us=_o,mo.warn("config refresh failed, recording will not start until page reload")),void this.startIfEnabledOrStop())}log($,Cr){var kr;Cr===void 0&&(Cr="log"),(kr=this.ls)!=null&&kr.log?this.ls.log($,Cr):mo.warn("log called before recorder was ready")}get fs(){var $,Cr,kr=($=this._instance)==null||($=$.persistence)==null?void 0:$.get_property(Li);return(kr==null||(Cr=kr.scriptConfig)==null?void 0:Cr.script)||"lazy-recorder"}ws(){var $,Cr=this._instance.get_property(Li);if(!Cr)return!1;var kr=($=(typeof Cr=="object"?Cr:JSON.parse(Cr)).cache_timestamp)!==null&&$!==void 0?$:Date.now();return 36e5>=Date.now()-kr}vs($){var Cr,kr;if((Cr=h$3.__PosthogExtensions__)==null||!Cr.initSessionRecording)return mo.warn("Called on script loaded before session recording is available. This can be caused by adblockers."),void this._instance.register_for_session({$sdk_debug_recording_script_not_loaded:!0});if(this.ls||(this.ls=(kr=h$3.__PosthogExtensions__)==null?void 0:kr.initSessionRecording(this._instance),this.ls._forceAllowLocalhostNetworkCapture=this._forceAllowLocalhostNetworkCapture),!this.ws())return this.us===_o||this.us===po?void 0:(this.us=po,mo.info("persisted remote config is stale, requesting fresh config before starting"),void new Hr(this._instance).load());this.us=fo,this.ls.start($)}onRRwebEmit($){var Cr;(Cr=this.ls)==null||Cr.onRRwebEmit==null||Cr.onRRwebEmit($)}overrideLinkedFlag(){var $,Cr;this.ls||(Cr=this.Xi)==null||Cr.register({$replay_override_linked_flag:!0}),($=this.ls)==null||$.overrideLinkedFlag()}overrideSampling(){var $,Cr;this.ls||(Cr=this.Xi)==null||Cr.register({$replay_override_sampling:!0}),($=this.ls)==null||$.overrideSampling()}overrideTrigger($){var Cr,kr;this.ls||(kr=this.Xi)==null||kr.register({[$==="url"?"$replay_override_url_trigger":"$replay_override_event_trigger"]:!0}),(Cr=this.ls)==null||Cr.overrideTrigger($)}get sdkDebugProperties(){var $;return(($=this.ls)==null?void 0:$.sdkDebugProperties)||{$recording_status:this.status}}tryAddCustomEvent($,Cr){var kr;return!((kr=this.ls)==null||!kr.tryAddCustomEvent($,Cr))}}},ta={autocapture:class{constructor($){this._s=!1,this.Is=null,this.Cs=!1,this.instance=$,this.rageclicks=new io($.config.rageclick),this.Ss=null}initialize(){this.startIfEnabled()}get Rt(){var $,Cr,kr=O(this.instance.config.autocapture)?this.instance.config.autocapture:{};return kr.url_allowlist=($=kr.url_allowlist)==null?void 0:$.map((Pr=>new RegExp(Pr))),kr.url_ignorelist=(Cr=kr.url_ignorelist)==null?void 0:Cr.map((Pr=>new RegExp(Pr))),kr}ks(){if(this.isBrowserSupported()){if(t$a&&r$c){var $=kr=>{kr=kr||(t$a==null?void 0:t$a.event);try{this.xs(kr)}catch(Pr){ro.error("Failed to capture event",Pr)}};if(Oe(r$c,"submit",$,{capture:!0}),Oe(r$c,"change",$,{capture:!0}),Oe(r$c,"click",$,{capture:!0}),this.Rt.capture_copied_text){var Cr=kr=>{this.xs(kr=kr||(t$a==null?void 0:t$a.event),eo)};Oe(r$c,"copy",Cr,{capture:!0}),Oe(r$c,"cut",Cr,{capture:!0})}}}else ro.info("Disabling Automatic Event Collection because this browser is not supported")}startIfEnabled(){this.isEnabled&&!this._s&&(this.ks(),this._s=!0)}onRemoteConfig($){$.elementsChainAsString&&(this.Cs=$.elementsChainAsString),this.instance.persistence&&this.instance.persistence.register({[ki]:!!$.autocapture_opt_out}),this.Is=!!$.autocapture_opt_out,this.startIfEnabled()}setElementSelectors($){this.Ss=$}getElementSelectors($){var Cr,kr=[];return(Cr=this.Ss)==null||Cr.forEach((Pr=>{var Rr=r$c==null?void 0:r$c.querySelectorAll(Pr);Rr==null||Rr.forEach((Ir=>{$===Ir&&kr.push(Pr)}))})),kr}get isEnabled(){var $,Cr,kr=($=this.instance.persistence)==null?void 0:$.props[ki];if(M$1(this.Is)&&!N$1(kr)&&!this.instance.ki())return!1;var Pr=(Cr=this.Is)!==null&&Cr!==void 0?Cr:!!kr;return!!this.instance.config.autocapture&&!Pr}xs($,Cr){if(Cr===void 0&&(Cr="$autocapture"),this.isEnabled){var kr,Pr=An($);Rn(Pr)&&(Pr=Pr.parentNode||null),Cr==="$autocapture"&&$.type==="click"&&$ instanceof MouseEvent&&this.instance.config.rageclick&&(kr=this.rageclicks)!=null&&kr.isRageClick($.clientX,$.clientY,$.timeStamp||new Date().getTime())&&(function(ga,xa){if(!t$a||jn(ga))return!1;var ya,ba,Aa;if(N$1(xa)?(ya=!!xa&&Nn,ba=void 0):(ya=(Aa=xa==null?void 0:xa.css_selector_ignorelist)!==null&&Aa!==void 0?Aa:Nn,ba=xa==null?void 0:xa.content_ignorelist),ya===!1)return!1;var{targetElementList:ka}=zn(ga,!1);return!(function(Ea,Sa){if(Ea===!1||C(Ea))return!1;var Ca;if(Ea===!0)Ca=Un;else{if(!k(Ea))return!1;if(Ea.length>10)return yi.error("[PostHog] content_ignorelist array cannot exceed 10 items. Use css_selector_ignorelist for more complex matching."),!1;Ca=Ea.map((Ta=>Ta.toLowerCase()))}return Sa.some((Ta=>{var{safeText:Ia,ariaLabel:Ra}=Ta;return Ca.some((ja=>Ia.includes(ja)||Ra.includes(ja)))}))})(ba,ka.map((Ea=>{var Sa;return{safeText:Fn(Ea).toLowerCase(),ariaLabel:((Sa=Ea.getAttribute("aria-label"))==null?void 0:Sa.toLowerCase().trim())||""}})))&&!Dn(ka,ya)})(Pr,this.instance.config.rageclick)&&this.xs($,"$rageclick");var Rr=Cr===eo;if(Pr&&(function(ga,xa,ya,ba,Aa){var ka,Ea,Sa,Ca;if(ya===void 0&&(ya=void 0),!t$a||jn(ga)||(ka=ya)!=null&&ka.url_allowlist&&!On(ya.url_allowlist)||(Ea=ya)!=null&&Ea.url_ignorelist&&On(ya.url_ignorelist))return!1;if((Sa=ya)!=null&&Sa.dom_event_allowlist){var Ta=ya.dom_event_allowlist;if(Ta&&!Ta.some((La=>xa.type===La)))return!1}var{parentIsUsefulElement:Ia,targetElementList:Ra}=zn(ga,ba);if(!(function(La,Ha){var Wa=Ha==null?void 0:Ha.element_allowlist;if(C(Wa))return!0;var Ja,Ya=function(Qa){if(Wa.some((Na=>Qa.tagName.toLowerCase()===Na)))return{v:!0}};for(var Za of La)if(Ja=Ya(Za))return Ja.v;return!1})(Ra,ya)||!Dn(Ra,(Ca=ya)==null?void 0:Ca.css_selector_allowlist))return!1;var ja=t$a.getComputedStyle(ga);if(ja&&ja.getPropertyValue("cursor")==="pointer"&&xa.type==="click")return!0;var Oa=ga.tagName.toLowerCase();switch(Oa){case"html":return!1;case"form":return(Aa||["submit"]).indexOf(xa.type)>=0;case"input":case"select":case"textarea":return(Aa||["change","click"]).indexOf(xa.type)>=0;default:return Ia?(Aa||["click"]).indexOf(xa.type)>=0:(Aa||["click"]).indexOf(xa.type)>=0&&(Mn.indexOf(Oa)>-1||ga.getAttribute("contenteditable")==="true")}})(Pr,$,this.Rt,Rr,Rr?["copy","cut"]:void 0)){var{props:Ir,explicitNoCapture:Fr}=oo(Pr,{e:$,maskAllElementAttributes:this.instance.config.mask_all_element_attributes,maskAllText:this.instance.config.mask_all_text,elementAttributeIgnoreList:this.Rt.element_attribute_ignorelist,elementsChainAsString:this.Cs});if(Fr)return!1;var Lr=this.getElementSelectors(Pr);if(Lr&&Lr.length>0&&(Ir.$element_selectors=Lr),Cr===eo){var qr,fa=Cn(t$a==null||(qr=t$a.getSelection())==null?void 0:qr.toString()),pa=$.type||"clipboard";if(!fa)return!1;Ir.$selected_content=fa,Ir.$copy_type=pa}return this.instance.capture(Cr,Ir),!0}}}isBrowserSupported(){return P$1(r$c==null?void 0:r$c.querySelectorAll)}},historyAutocapture:class{constructor($){var Cr;this._instance=$,this.Ts=(t$a==null||(Cr=t$a.location)==null?void 0:Cr.pathname)||""}initialize(){this.startIfEnabled()}get isEnabled(){return this._instance.config.capture_pageview==="history_change"}startIfEnabled(){this.isEnabled&&(yi.info("History API monitoring enabled, starting..."),this.monitorHistoryChanges())}stop(){this.As&&this.As(),this.As=void 0,yi.info("History API monitoring stopped")}monitorHistoryChanges(){var $,Cr;if(t$a&&t$a.history){var kr=this;($=t$a.history.pushState)!=null&&$.__posthog_wrapped__||lo(t$a.history,"pushState",(Pr=>function(Rr,Ir,Fr){Pr.call(this,Rr,Ir,Fr),kr.Es("pushState")})),(Cr=t$a.history.replaceState)!=null&&Cr.__posthog_wrapped__||lo(t$a.history,"replaceState",(Pr=>function(Rr,Ir,Fr){Pr.call(this,Rr,Ir,Fr),kr.Es("replaceState")})),this.Rs()}}Es($){try{var Cr,kr=t$a==null||(Cr=t$a.location)==null?void 0:Cr.pathname;if(!kr)return;kr!==this.Ts&&this.isEnabled&&this._instance.capture(ge,{navigation_type:$}),this.Ts=kr}catch(Pr){yi.error("Error capturing "+$+" pageview",Pr)}}Rs(){if(!this.As){var $=()=>{this.Es("popstate")};Oe(t$a,"popstate",$),this.As=()=>{t$a&&t$a.removeEventListener("popstate",$)}}}},heatmaps:class{get Rt(){return this.instance.config}constructor($){var Cr;this.Ns=!1,this._s=!1,this.Ms=null,this.instance=$,this.Ns=!((Cr=this.instance.persistence)==null||!Cr.props[Pi]),this.rageclicks=new io($.config.rageclick)}initialize(){this.startIfEnabled()}get flushIntervalMilliseconds(){var $=5e3;return O(this.Rt.capture_heatmaps)&&this.Rt.capture_heatmaps.flush_interval_milliseconds&&($=this.Rt.capture_heatmaps.flush_interval_milliseconds),$}get isEnabled(){return D(this.Rt.capture_heatmaps)?D(this.Rt.enable_heatmaps)?this.Ns:this.Rt.enable_heatmaps:this.Rt.capture_heatmaps!==!1}startIfEnabled(){if(this.isEnabled){if(this._s)return;bo.info("starting..."),this.Fs(),this.Tt()}else{var $;clearInterval(($=this.Ms)!==null&&$!==void 0?$:void 0),this.Os(),this.getAndClearBuffer()}}onRemoteConfig($){if("heatmaps"in $){var Cr=!!$.heatmaps;this.instance.persistence&&this.instance.persistence.register({[Pi]:Cr}),this.Ns=Cr,this.startIfEnabled()}}getAndClearBuffer(){var $=this.T;return this.T=void 0,$}Ps($){this.wt($.originalEvent,"deadclick")}Tt(){this.Ms&&clearInterval(this.Ms),this.Ms=(r$c==null?void 0:r$c.visibilityState)==="visible"?setInterval(this.ji.bind(this),this.flushIntervalMilliseconds):null}Fs(){t$a&&r$c&&(this.Ls=this.ji.bind(this),Oe(t$a,_e,this.Ls),this.Ds=$=>this.wt($||(t$a==null?void 0:t$a.event)),Oe(r$c,"click",this.Ds,{capture:!0}),this.Bs=$=>this.js($||(t$a==null?void 0:t$a.event)),Oe(r$c,"mousemove",this.Bs,{capture:!0}),this.qs=new Ze(this.instance,Xe,this.Ps.bind(this)),this.qs.startIfEnabledOrStop(),this.Zs=this.Tt.bind(this),Oe(r$c,pe,this.Zs),this._s=!0)}Os(){var $;t$a&&r$c&&(this.Ls&&t$a.removeEventListener(_e,this.Ls),this.Ds&&r$c.removeEventListener("click",this.Ds,{capture:!0}),this.Bs&&r$c.removeEventListener("mousemove",this.Bs,{capture:!0}),this.Zs&&r$c.removeEventListener(pe,this.Zs),clearTimeout(this.$s),($=this.qs)==null||$.stop(),this._s=!1)}Vs($,Cr){var kr=this.instance.scrollManager.scrollY(),Pr=this.instance.scrollManager.scrollX(),Rr=this.instance.scrollManager.scrollElement(),Ir=(function(Fr,Lr,qr){for(var fa=Fr;fa&&Tn(fa)&&!$n(fa,"body");){if(fa===qr)return!1;if(w$1(Lr,t$a==null?void 0:t$a.getComputedStyle(fa).position))return!0;fa=Ln(fa)}return!1})(An($),["fixed","sticky"],Rr);return{x:$.clientX+(Ir?0:Pr),y:$.clientY+(Ir?0:kr),target_fixed:Ir,type:Cr}}wt($,Cr){var kr;if(Cr===void 0&&(Cr="click"),!xn($.target)&&yo($)){var Pr=this.Vs($,Cr);(kr=this.rageclicks)!=null&&kr.isRageClick($.clientX,$.clientY,new Date().getTime())&&this.Hs(p$3({},Pr,{type:"rageclick"})),this.Hs(Pr)}}js($){!xn($.target)&&yo($)&&(clearTimeout(this.$s),this.$s=setTimeout((()=>{this.Hs(this.Vs($,"mousemove"))}),500))}Hs($){if(t$a){var Cr=t$a.location.href,kr=this.Rt.custom_personal_data_properties,Pr=this.Rt.mask_personal_data_properties?[...hr,...kr||[]]:[],Rr=ar(Cr,Pr,vr);this.T=this.T||{},this.T[Rr]||(this.T[Rr]=[]),this.T[Rr].push($)}}ji(){this.T&&!I$1(this.T)&&this.instance.capture("$$heatmap",{$heatmap_data:this.getAndClearBuffer()})}},deadClicksAutocapture:Ze,webVitalsAutocapture:class{constructor($){var Cr;this.Ns=!1,this._s=!1,this.T={url:void 0,metrics:[],firstMetricTimestamp:void 0},this.zs=()=>{clearTimeout(this.Us),this.T.metrics.length!==0&&(this._instance.capture("$web_vitals",this.T.metrics.reduce(((kr,Pr)=>p$3({},kr,{["$web_vitals_"+Pr.name+"_event"]:p$3({},Pr),["$web_vitals_"+Pr.name+"_value"]:Pr.value})),{})),this.T={url:void 0,metrics:[],firstMetricTimestamp:void 0})},this.nt=kr=>{var Pr,Rr=(Pr=this._instance.sessionManager)==null?void 0:Pr.checkAndGetSessionAndWindowId(!0);if(C(Rr))ho.error("Could not read session ID. Dropping metrics!");else{this.T=this.T||{url:void 0,metrics:[],firstMetricTimestamp:void 0};var Ir=this.Ys();C(Ir)||(D(kr==null?void 0:kr.name)||D(kr==null?void 0:kr.value)?ho.error("Invalid metric received",kr):!this.Gs||this.Gs>kr.value?(this.T.url!==Ir&&(this.zs(),this.Us=setTimeout(this.zs,this.flushToCaptureTimeoutMs)),C(this.T.url)&&(this.T.url=Ir),this.T.firstMetricTimestamp=C(this.T.firstMetricTimestamp)?Date.now():this.T.firstMetricTimestamp,kr.attribution&&kr.attribution.interactionTargetElement&&(kr.attribution.interactionTargetElement=void 0),this.T.metrics.push(p$3({},kr,{$current_url:Ir,$session_id:Rr.sessionId,$window_id:Rr.windowId,timestamp:Date.now()})),this.T.metrics.length===this.allowedMetrics.length&&this.zs()):ho.error("Ignoring metric with value >= "+this.Gs,kr))}},this.Ws=()=>{if(!this._s){var kr,Pr,Rr,Ir,Fr=h$3.__PosthogExtensions__;C(Fr)||C(Fr.postHogWebVitalsCallbacks)||({onLCP:kr,onCLS:Pr,onFCP:Rr,onINP:Ir}=Fr.postHogWebVitalsCallbacks),kr&&Pr&&Rr&&Ir?(this.allowedMetrics.indexOf("LCP")>-1&&kr(this.nt.bind(this)),this.allowedMetrics.indexOf("CLS")>-1&&Pr(this.nt.bind(this)),this.allowedMetrics.indexOf("FCP")>-1&&Rr(this.nt.bind(this)),this.allowedMetrics.indexOf("INP")>-1&&Ir(this.nt.bind(this)),this._s=!0):ho.error("web vitals callbacks not loaded - not starting")}},this._instance=$,this.Ns=!((Cr=this._instance.persistence)==null||!Cr.props[Fi]),this.startIfEnabled()}get Xs(){return this._instance.config.capture_performance}get allowedMetrics(){var $,Cr,kr=O(this.Xs)?($=this.Xs)==null?void 0:$.web_vitals_allowed_metrics:void 0;return D(kr)?((Cr=this._instance.persistence)==null?void 0:Cr.props[Di])||["CLS","FCP","INP","LCP"]:kr}get flushToCaptureTimeoutMs(){return(O(this.Xs)?this.Xs.web_vitals_delayed_flush_ms:void 0)||5e3}get useAttribution(){var $=O(this.Xs)?this.Xs.web_vitals_attribution:void 0;return $!=null&&$}get Gs(){var $=O(this.Xs)&&L(this.Xs.__web_vitals_max_value)?this.Xs.__web_vitals_max_value:vo;return $>0&&6e4>=$?vo:$}get isEnabled(){var $=s$d==null?void 0:s$d.protocol;if($!=="http:"&&$!=="https:")return ho.info("Web Vitals are disabled on non-http/https protocols"),!1;var Cr=O(this.Xs)?this.Xs.web_vitals:N$1(this.Xs)?this.Xs:void 0;return N$1(Cr)?Cr:this.Ns}startIfEnabled(){this.isEnabled&&!this._s&&(ho.info("enabled, starting..."),this.ni(this.Ws))}onRemoteConfig($){if("capturePerformance"in $){var Cr=O($.capturePerformance)&&!!$.capturePerformance.web_vitals,kr=O($.capturePerformance)?$.capturePerformance.web_vitals_allowed_metrics:void 0;this._instance.persistence&&(this._instance.persistence.register({[Fi]:Cr}),this._instance.persistence.register({[Di]:kr})),this.Ns=Cr,this.startIfEnabled()}}ni($){var Cr,kr;(Cr=h$3.__PosthogExtensions__)!=null&&Cr.postHogWebVitalsCallbacks?$():(kr=h$3.__PosthogExtensions__)==null||kr.loadExternalDependency==null||kr.loadExternalDependency(this._instance,this.useAttribution?"web-vitals-with-attribution":"web-vitals",(Pr=>{Pr?ho.error("failed to load script",Pr):$()}))}Ys(){var $=t$a?t$a.location.href:void 0;if($){var Cr=this._instance.config.custom_personal_data_properties,kr=this._instance.config.mask_personal_data_properties?[...hr,...Cr||[]]:[];return ar($,kr,vr)}ho.error("Could not determine current URL")}}},ia={exceptionObserver:class{constructor($){var Cr,kr,Pr;this.Ws=()=>{var Rr;if(t$a&&this.isEnabled&&(Rr=h$3.__PosthogExtensions__)!=null&&Rr.errorWrappingFunctions){var Ir=h$3.__PosthogExtensions__.errorWrappingFunctions.wrapOnError,Fr=h$3.__PosthogExtensions__.errorWrappingFunctions.wrapUnhandledRejection,Lr=h$3.__PosthogExtensions__.errorWrappingFunctions.wrapConsoleError;try{!this.Js&&this.Rt.capture_unhandled_errors&&(this.Js=Ir(this.captureException.bind(this))),!this.Ks&&this.Rt.capture_unhandled_rejections&&(this.Ks=Fr(this.captureException.bind(this))),!this.Qs&&this.Rt.capture_console_errors&&(this.Qs=Lr(this.captureException.bind(this)))}catch(qr){ao.error("failed to start",qr),this.eo()}}},this._instance=$,this.io=!((Cr=this._instance.persistence)==null||!Cr.props[Oi]),this.ro=new J({refillRate:(kr=this._instance.config.error_tracking.__exceptionRateLimiterRefillRate)!==null&&kr!==void 0?kr:1,bucketSize:(Pr=this._instance.config.error_tracking.__exceptionRateLimiterBucketSize)!==null&&Pr!==void 0?Pr:10,refillInterval:1e4,qt:ao}),this.Rt=this.no(),this.startIfEnabledOrStop()}no(){var $=this._instance.config.capture_exceptions,Cr={capture_unhandled_errors:!1,capture_unhandled_rejections:!1,capture_console_errors:!1};return O($)?Cr=p$3({},Cr,$):(C($)?this.io:$)&&(Cr=p$3({},Cr,{capture_unhandled_errors:!0,capture_unhandled_rejections:!0})),Cr}get isEnabled(){return this.Rt.capture_console_errors||this.Rt.capture_unhandled_errors||this.Rt.capture_unhandled_rejections}startIfEnabledOrStop(){this.isEnabled?(ao.info("enabled"),this.eo(),this.ni(this.Ws)):this.eo()}ni($){var Cr,kr;(Cr=h$3.__PosthogExtensions__)!=null&&Cr.errorWrappingFunctions&&$(),(kr=h$3.__PosthogExtensions__)==null||kr.loadExternalDependency==null||kr.loadExternalDependency(this._instance,"exception-autocapture",(Pr=>{if(Pr)return ao.error("failed to load script",Pr);$()}))}eo(){var $,Cr,kr;($=this.Js)==null||$.call(this),this.Js=void 0,(Cr=this.Ks)==null||Cr.call(this),this.Ks=void 0,(kr=this.Qs)==null||kr.call(this),this.Qs=void 0}onRemoteConfig($){"autocaptureExceptions"in $&&(this.io=!!$.autocaptureExceptions||!1,this._instance.persistence&&this._instance.persistence.register({[Oi]:this.io}),this.Rt=this.no(),this.startIfEnabledOrStop())}onConfigChange(){this.Rt=this.no()}captureException($){var Cr,kr,Pr,Rr=(Cr=$==null||(kr=$.$exception_list)==null||(kr=kr[0])==null?void 0:kr.type)!==null&&Cr!==void 0?Cr:"Exception";this.ro.consumeRateLimit(Rr)?ao.info("Skipping exception capture because of client rate limiting.",{exception:Rr}):(Pr=this._instance.exceptions)==null||Pr.sendExceptionEvent($)}},exceptions:class{constructor($){var Cr,kr;this.so=[],this.oo=new Kt([new li,new mi,new hi,new ui,new _i,new pi,new vi,new gi],(function(Pr){for(var Rr=arguments.length,Ir=new Array(Rr>1?Rr-1:0),Fr=1;Rr>Fr;Fr++)Ir[Fr-1]=arguments[Fr];return function(Lr,qr){qr===void 0&&(qr=0);for(var fa=[],pa=Lr.split(`
|
|
18
|
-
`),ga=qr;pa.length>ga;ga++){var xa=pa[ga];if(1024>=xa.length){var ya=ai.test(xa)?xa.replace(ai,"$1"):xa;if(!ya.match(/\S*Error: /)){for(var ba of Ir){var Aa=ba(ya,Pr);if(Aa){fa.push(Aa);break}}if(fa.length>=50)break}}}return(function(ka){if(!ka.length)return[];var Ea=Array.from(ka);return Ea.reverse(),Ea.slice(0,50).map((Sa=>{return p$3({},Sa,{filename:Sa.filename||(Ca=Ea,Ca[Ca.length-1]||{}).filename,function:Sa.function||Xt});var Ca}))})(fa)}})("web:javascript",ri,oi)),this._instance=$,this.so=(Cr=(kr=this._instance.persistence)==null?void 0:kr.get_property(Ii))!==null&&Cr!==void 0?Cr:[]}onRemoteConfig($){var Cr,kr,Pr;if("errorTracking"in $){var Rr=(Cr=(kr=$.errorTracking)==null?void 0:kr.suppressionRules)!==null&&Cr!==void 0?Cr:[],Ir=(Pr=$.errorTracking)==null?void 0:Pr.captureExtensionExceptions;this.so=Rr,this._instance.persistence&&this._instance.persistence.register({[Ii]:this.so,[Ci]:Ir})}}get ao(){var $,Cr=!!this._instance.get_property(Ci),kr=this._instance.config.error_tracking.captureExtensionExceptions;return($=kr??Cr)!==null&&$!==void 0&&$}buildProperties($,Cr){return this.oo.buildFromUnknown($,{syntheticException:Cr==null?void 0:Cr.syntheticException,mechanism:{handled:Cr==null?void 0:Cr.handled}})}sendExceptionEvent($){var Cr=$.$exception_list;if(this.lo(Cr)){if(this.uo(Cr))return void Bo.info("Skipping exception capture because a suppression rule matched");if(!this.ao&&this.ho(Cr))return void Bo.info("Skipping exception capture because it was thrown by an extension");if(!this._instance.config.error_tracking.__capturePostHogExceptions&&this.co(Cr))return void Bo.info("Skipping exception capture because it was thrown by the PostHog SDK")}return this._instance.capture("$exception",$,{_noTruncate:!0,_batchKey:"exceptionEvent",Ur:!0})}uo($){if($.length===0)return!1;var Cr=$.reduce(((kr,Pr)=>{var{type:Rr,value:Ir}=Pr;return F(Rr)&&Rr.length>0&&kr.$exception_types.push(Rr),F(Ir)&&Ir.length>0&&kr.$exception_values.push(Ir),kr}),{$exception_types:[],$exception_values:[]});return this.so.some((kr=>{var Pr=kr.values.map((Rr=>{var Ir,Fr=Ws[Rr.operator],Lr=k(Rr.value)?Rr.value:[Rr.value],qr=(Ir=Cr[Rr.key])!==null&&Ir!==void 0?Ir:[];return Lr.length>0&&Fr(Lr,qr)}));return kr.type==="OR"?Pr.some(Boolean):Pr.every(Boolean)}))}ho($){return $.flatMap((Cr=>{var kr,Pr;return(kr=(Pr=Cr.stacktrace)==null?void 0:Pr.frames)!==null&&kr!==void 0?kr:[]})).some((Cr=>Cr.filename&&Cr.filename.startsWith("chrome-extension://")))}co($){if($.length>0){var Cr,kr,Pr,Rr,Ir=(Cr=(kr=$[0].stacktrace)==null?void 0:kr.frames)!==null&&Cr!==void 0?Cr:[],Fr=Ir[Ir.length-1];return(Pr=Fr==null||(Rr=Fr.filename)==null?void 0:Rr.includes("posthog.com/static"))!==null&&Pr!==void 0&&Pr}return!1}lo($){return!D($)&&k($)}}},ea=p$3({productTours:class{get Xi(){return this._instance.persistence}constructor($){this.do=null,this.vo=null,this._instance=$}initialize(){this.loadIfEnabled()}onRemoteConfig($){"productTours"in $&&(this.Xi&&this.Xi.register({[Mi]:!!$.productTours}),this.loadIfEnabled())}loadIfEnabled(){var $,Cr;this.do||($=this._instance).config.disable_product_tours||(Cr=$.persistence)==null||!Cr.get_property(Mi)||this.ni((()=>this.fo()))}ni($){var Cr,kr;(Cr=h$3.__PosthogExtensions__)!=null&&Cr.generateProductTours?$():(kr=h$3.__PosthogExtensions__)==null||kr.loadExternalDependency==null||kr.loadExternalDependency(this._instance,"product-tours",(Pr=>{Pr?wo.error("Could not load product tours script",Pr):$()}))}fo(){var $;!this.do&&($=h$3.__PosthogExtensions__)!=null&&$.generateProductTours&&(this.do=h$3.__PosthogExtensions__.generateProductTours(this._instance,!0))}getProductTours($,Cr){if(Cr===void 0&&(Cr=!1),!k(this.vo)||Cr){var kr=this.Xi;if(kr){var Pr=kr.props[Yi];if(k(Pr)&&!Cr)return this.vo=Pr,void $(Pr,{isLoaded:!0})}this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/product_tours/?token="+this._instance.config.token),method:"GET",callback:Rr=>{var Ir=Rr.statusCode;if(Ir!==200||!Rr.json){var Fr="Product Tours API could not be loaded, status: "+Ir;return wo.error(Fr),void $([],{isLoaded:!1,error:Fr})}var Lr=k(Rr.json.product_tours)?Rr.json.product_tours:[];this.vo=Lr,kr&&kr.register({[Yi]:Lr}),$(Lr,{isLoaded:!0})}})}else $(this.vo,{isLoaded:!0})}getActiveProductTours($){D(this.do)?$([],{isLoaded:!1,error:"Product tours not loaded"}):this.do.getActiveProductTours($)}showProductTour($){var Cr;(Cr=this.do)==null||Cr.showTourById($)}previewTour($){this.do?this.do.previewTour($):this.ni((()=>{var Cr;this.fo(),(Cr=this.do)==null||Cr.previewTour($)}))}dismissProductTour(){var $;($=this.do)==null||$.dismissTour("user_clicked_skip")}nextStep(){var $;($=this.do)==null||$.nextStep()}previousStep(){var $;($=this.do)==null||$.previousStep()}clearCache(){var $;this.vo=null,($=this.Xi)==null||$.unregister(Yi)}resetTour($){var Cr;(Cr=this.do)==null||Cr.resetTour($)}resetAllTours(){var $;($=this.do)==null||$.resetAllTours()}cancelPendingTour($){var Cr;(Cr=this.do)==null||Cr.cancelPendingTour($)}}},Qo),ra={siteApps:class{constructor($){this._instance=$,this.po=[],this.apps={}}get isEnabled(){return!!this._instance.config.opt_in_site_apps}mo($,Cr){if(Cr){var kr=this.globalsForEvent(Cr);this.po.push(kr),this.po.length>1e3&&(this.po=this.po.slice(10))}}get siteAppLoaders(){var $;return($=h$3._POSTHOG_REMOTE_CONFIG)==null||($=$[this._instance.config.token])==null?void 0:$.siteApps}initialize(){if(this.isEnabled){var $=this._instance._addCaptureHook(this.mo.bind(this));this.yo=()=>{$(),this.po=[],this.yo=void 0}}}globalsForEvent($){var Cr,kr,Pr,Rr,Ir,Fr,Lr;if(!$)throw new Error("Event payload is required");var qr={},fa=this._instance.get_property("$groups")||[],pa=this._instance.get_property("$stored_group_properties")||{};for(var[ga,xa]of Object.entries(pa))qr[ga]={id:fa[ga],type:ga,properties:xa};var{$set_once:ya,$set:ba}=$;return{event:p$3({},_$2($,Eo),{properties:p$3({},$.properties,ba?{$set:p$3({},(Cr=(kr=$.properties)==null?void 0:kr.$set)!==null&&Cr!==void 0?Cr:{},ba)}:{},ya?{$set_once:p$3({},(Pr=(Rr=$.properties)==null?void 0:Rr.$set_once)!==null&&Pr!==void 0?Pr:{},ya)}:{}),elements_chain:(Ir=(Fr=$.properties)==null?void 0:Fr.$elements_chain)!==null&&Ir!==void 0?Ir:"",distinct_id:(Lr=$.properties)==null?void 0:Lr.distinct_id}),person:{properties:this._instance.get_property("$stored_person_properties")},groups:qr}}setupSiteApp($){var Cr=this.apps[$.id],kr=()=>{var Fr;!Cr.errored&&this.po.length&&(So.info("Processing "+this.po.length+" events for site app with id "+$.id),this.po.forEach((Lr=>Cr.processEvent==null?void 0:Cr.processEvent(Lr))),Cr.processedBuffer=!0),Object.values(this.apps).every((Lr=>Lr.processedBuffer||Lr.errored))&&((Fr=this.yo)==null||Fr.call(this))},Pr=!1,Rr=Fr=>{Cr.errored=!Fr,Cr.loaded=!0,So.info("Site app with id "+$.id+" "+(Fr?"loaded":"errored")),Pr&&kr()};try{var{processEvent:Ir}=$.init({posthog:this._instance,callback(Fr){Rr(Fr)}});Ir&&(Cr.processEvent=Ir),Pr=!0}catch(Fr){So.error(xo+$.id,Fr),Rr(!1)}if(Pr&&Cr.loaded)try{kr()}catch(Fr){So.error("Error while processing buffered events PostHog app with config id "+$.id,Fr),Cr.errored=!0}}bo(){var $=this.siteAppLoaders||[];for(var Cr of $)this.apps[Cr.id]={id:Cr.id,loaded:!1,errored:!1,processedBuffer:!1};for(var kr of $)this.setupSiteApp(kr)}wo($){if(Object.keys(this.apps).length!==0){var Cr=this.globalsForEvent($);for(var kr of Object.values(this.apps))try{kr.processEvent==null||kr.processEvent(Cr)}catch(Pr){So.error("Error while processing event "+$.event+" for site app "+kr.id,Pr)}}}onRemoteConfig($){var Cr,kr,Pr,Rr=this;if((Cr=this.siteAppLoaders)!=null&&Cr.length)return this.isEnabled?(this.bo(),void this._instance.on("eventCaptured",(qr=>this.wo(qr)))):void So.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.');if((kr=this.yo)==null||kr.call(this),(Pr=$.siteApps)!=null&&Pr.length)if(this.isEnabled){var Ir=function(qr){var fa;h$3["__$$ph_site_app_"+qr]=Rr._instance,(fa=h$3.__PosthogExtensions__)==null||fa.loadSiteApp==null||fa.loadSiteApp(Rr._instance,Lr,(pa=>{if(pa)return So.error(xo+qr,pa)}))};for(var{id:Fr,url:Lr}of $.siteApps)Ir(Fr)}else So.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.')}}},sa={tracingHeaders:class{constructor($){this._o=void 0,this.Io=void 0,this.Ws=()=>{var Cr,kr;C(this._o)&&((Cr=h$3.__PosthogExtensions__)==null||(Cr=Cr.tracingHeadersPatchFns)==null||Cr._patchXHR(this._instance.config.__add_tracing_headers||[],this._instance.get_distinct_id(),this._instance.sessionManager)),C(this.Io)&&((kr=h$3.__PosthogExtensions__)==null||(kr=kr.tracingHeadersPatchFns)==null||kr._patchFetch(this._instance.config.__add_tracing_headers||[],this._instance.get_distinct_id(),this._instance.sessionManager))},this._instance=$}initialize(){this.startIfEnabledOrStop()}ni($){var Cr,kr;(Cr=h$3.__PosthogExtensions__)!=null&&Cr.tracingHeadersPatchFns&&$(),(kr=h$3.__PosthogExtensions__)==null||kr.loadExternalDependency==null||kr.loadExternalDependency(this._instance,"tracing-headers",(Pr=>{if(Pr)return uo.error("failed to load script",Pr);$()}))}startIfEnabledOrStop(){var $,Cr;this._instance.config.__add_tracing_headers?this.ni(this.Ws):(($=this._o)==null||$.call(this),(Cr=this.Io)==null||Cr.call(this),this._o=void 0,this.Io=void 0)}}},na=p$3({surveys:class{get Rt(){return this._instance.config}constructor($){this.Co=void 0,this._surveyManager=null,this.So=!1,this.ko=[],this.xo=null,this._instance=$,this._surveyEventReceiver=null}initialize(){this.loadIfEnabled()}onRemoteConfig($){if(!this.Rt.disable_surveys){var Cr=$.surveys;if(D(Cr))return Zs.warn("Flags not loaded yet. Not loading surveys.");var kr=k(Cr);this.Co=kr?Cr.length>0:Cr,Zs.info("flags response received, isSurveysEnabled: "+this.Co),this.loadIfEnabled()}}reset(){localStorage.removeItem("lastSeenSurveyDate");for(var $=[],Cr=0;Cr<localStorage.length;Cr++){var kr=localStorage.key(Cr);(kr!=null&&kr.startsWith(tn)||kr!=null&&kr.startsWith("inProgressSurvey_"))&&$.push(kr)}$.forEach((Pr=>localStorage.removeItem(Pr)))}loadIfEnabled(){if(!this._surveyManager)if(this.So)Zs.info("Already initializing surveys, skipping...");else if(this.Rt.disable_surveys)Zs.info(Oo);else if(this.Rt.cookieless_mode&&this._instance.consent.isOptedOut())Zs.info("Not loading surveys in cookieless mode without consent.");else{var $=h$3==null?void 0:h$3.__PosthogExtensions__;if($){if(!C(this.Co)||this.Rt.advanced_enable_surveys){var Cr=this.Co||this.Rt.advanced_enable_surveys;this.So=!0;try{var kr=$.generateSurveys;if(kr)return void this.To(kr,Cr);var Pr=$.loadExternalDependency;if(!Pr)return void this.Ao(ue);Pr(this._instance,"surveys",(Rr=>{Rr||!$.generateSurveys?this.Ao("Could not load surveys script",Rr):this.To($.generateSurveys,Cr)}))}catch(Rr){throw this.Ao("Error initializing surveys",Rr),Rr}finally{this.So=!1}}}else Zs.error("PostHog Extensions not found.")}}To($,Cr){this._surveyManager=$(this._instance,Cr),this._surveyEventReceiver=new ko(this._instance),Zs.info("Surveys loaded successfully"),this.Eo({isLoaded:!0})}Ao($,Cr){Zs.error($,Cr),this.Eo({isLoaded:!1,error:$})}onSurveysLoaded($){return this.ko.push($),this._surveyManager&&this.Eo({isLoaded:!0}),()=>{this.ko=this.ko.filter((Cr=>Cr!==$))}}getSurveys($,Cr){if(Cr===void 0&&(Cr=!1),this.Rt.disable_surveys)return Zs.info(Oo),$([]);var kr,Pr=this._instance.get_property(Gi);if(Pr&&!Cr)return $(Pr,{isLoaded:!0});typeof Promise<"u"&&this.xo?this.xo.then((Rr=>{var{surveys:Ir,context:Fr}=Rr;return $(Ir,Fr)})):(typeof Promise<"u"&&(this.xo=new Promise((Rr=>{kr=Rr}))),this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/surveys/?token="+this.Rt.token),method:"GET",timeout:this.Rt.surveys_request_timeout_ms,callback:Rr=>{var Ir;this.xo=null;var Fr=Rr.statusCode;if(Fr!==200||!Rr.json){var Lr="Surveys API could not be loaded, status: "+Fr;Zs.error(Lr);var qr={isLoaded:!1,error:Lr};return $([],qr),void(kr==null||kr({surveys:[],context:qr}))}var fa,pa=Rr.json.surveys||[],ga=pa.filter((ya=>(function(ba){return!(!ba.start_date||ba.end_date)})(ya)&&((function(ba){var Aa;return!((Aa=ba.conditions)==null||(Aa=Aa.events)==null||(Aa=Aa.values)==null||!Aa.length)})(ya)||(function(ba){var Aa;return!((Aa=ba.conditions)==null||(Aa=Aa.actions)==null||(Aa=Aa.values)==null||!Aa.length)})(ya))));ga.length>0&&((fa=this._surveyEventReceiver)==null||fa.register(ga)),(Ir=this._instance.persistence)==null||Ir.register({[Gi]:pa});var xa={isLoaded:!0};$(pa,xa),kr==null||kr({surveys:pa,context:xa})}}))}Eo($){for(var Cr of this.ko)try{if(!$.isLoaded)return Cr([],$);this.getSurveys(Cr)}catch(kr){Zs.error("Error in survey callback",kr)}}getActiveMatchingSurveys($,Cr){if(Cr===void 0&&(Cr=!1),!D(this._surveyManager))return this._surveyManager.getActiveMatchingSurveys($,Cr);Zs.warn("init was not called")}Ro($){var Cr=null;return this.getSurveys((kr=>{var Pr;Cr=(Pr=kr.find((Rr=>Rr.id===$)))!==null&&Pr!==void 0?Pr:null})),Cr}No($){if(D(this._surveyManager))return{eligible:!1,reason:Po};var Cr=typeof $=="string"?this.Ro($):$;return Cr?this._surveyManager.checkSurveyEligibility(Cr):{eligible:!1,reason:"Survey not found"}}canRenderSurvey($){if(D(this._surveyManager))return Zs.warn("init was not called"),{visible:!1,disabledReason:Po};var Cr=this.No($);return{visible:Cr.eligible,disabledReason:Cr.reason}}canRenderSurveyAsync($,Cr){return D(this._surveyManager)?(Zs.warn("init was not called"),Promise.resolve({visible:!1,disabledReason:Po})):new Promise((kr=>{this.getSurveys((Pr=>{var Rr,Ir=(Rr=Pr.find((Lr=>Lr.id===$)))!==null&&Rr!==void 0?Rr:null;if(Ir){var Fr=this.No(Ir);kr({visible:Fr.eligible,disabledReason:Fr.reason})}else kr({visible:!1,disabledReason:"Survey not found"})}),Cr)}))}renderSurvey($,Cr,kr){var Pr;if(D(this._surveyManager))Zs.warn("init was not called");else{var Rr=typeof $=="string"?this.Ro($):$;if(Rr!=null&&Rr.id)if(sn.includes(Rr.type)){var Ir=r$c==null?void 0:r$c.querySelector(Cr);if(Ir)return(Pr=Rr.appearance)!=null&&Pr.surveyPopupDelaySeconds?(Zs.info("Rendering survey "+Rr.id+" with delay of "+Rr.appearance.surveyPopupDelaySeconds+" seconds"),void setTimeout((()=>{var Fr,Lr;Zs.info("Rendering survey "+Rr.id+" with delay of "+((Fr=Rr.appearance)==null?void 0:Fr.surveyPopupDelaySeconds)+" seconds"),(Lr=this._surveyManager)==null||Lr.renderSurvey(Rr,Ir,kr),Zs.info("Survey "+Rr.id+" rendered")}),1e3*Rr.appearance.surveyPopupDelaySeconds)):void this._surveyManager.renderSurvey(Rr,Ir,kr);Zs.warn("Survey element not found")}else Zs.warn("Surveys of type "+Rr.type+" cannot be rendered in the app");else Zs.warn("Survey not found")}}displaySurvey($,Cr){var kr;if(D(this._surveyManager))Zs.warn("init was not called");else{var Pr=this.Ro($);if(Pr){var Rr=Pr;if((kr=Pr.appearance)!=null&&kr.surveyPopupDelaySeconds&&Cr.ignoreDelay&&(Rr=p$3({},Pr,{appearance:p$3({},Pr.appearance,{surveyPopupDelaySeconds:0})})),Cr.displayType!==Dr.Popover&&Cr.initialResponses&&Zs.warn("initialResponses is only supported for popover surveys. prefill will not be applied."),Cr.ignoreConditions===!1){var Ir=this.canRenderSurvey(Pr);if(!Ir.visible)return void Zs.warn("Survey is not eligible to be displayed: ",Ir.disabledReason)}Cr.displayType!==Dr.Inline?this._surveyManager.handlePopoverSurvey(Rr,Cr):this.renderSurvey(Rr,Cr.selector,Cr.properties)}else Zs.warn("Survey not found")}}cancelPendingSurvey($){D(this._surveyManager)?Zs.warn("init was not called"):this._surveyManager.cancelSurvey($)}handlePageUnload(){var $;($=this._surveyManager)==null||$.handlePageUnload()}}},Qo),oa={toolbar:class{constructor($){this.instance=$}Mo($){h$3.ph_toolbar_state=$}Fo(){var $;return($=h$3.ph_toolbar_state)!==null&&$!==void 0?$:0}initialize(){return this.maybeLoadToolbar()}maybeLoadToolbar($,Cr,kr){if($===void 0&&($=void 0),Cr===void 0&&(Cr=void 0),kr===void 0&&(kr=void 0),Ie(this.instance.config)||!t$a||!r$c)return!1;$=$??t$a.location,kr=kr??t$a.history;try{if(!Cr){try{t$a.localStorage.setItem("test","test"),t$a.localStorage.removeItem("test")}catch{return!1}Cr=t$a==null?void 0:t$a.localStorage}var Pr,Rr=Io||lr($.hash,"__posthog")||lr($.hash,"state"),Ir=Rr?Te((()=>JSON.parse(atob(decodeURIComponent(Rr)))))||Te((()=>JSON.parse(decodeURIComponent(Rr)))):null;return Ir&&Ir.action==="ph_authorize"?((Pr=Ir).source="url",Pr&&Object.keys(Pr).length>0&&(Ir.desiredHash?$.hash=Ir.desiredHash:kr?kr.replaceState(kr.state,"",$.pathname+$.search):$.hash="")):((Pr=JSON.parse(Cr.getItem(Co)||"{}")).source="localstorage",delete Pr.userIntent),!(!Pr.token||this.instance.config.token!==Pr.token||(this.loadToolbar(Pr),0))}catch{return!1}}Oo($){var Cr=h$3.ph_load_toolbar||h$3.ph_load_editor;!D(Cr)&&P$1(Cr)?Cr($,this.instance):Fo.warn("No toolbar load function found")}loadToolbar($){var Cr=!(r$c==null||!r$c.getElementById(oe));if(!t$a||Cr)return!1;var kr=this.instance.requestRouter.region==="custom"&&this.instance.config.advanced_disable_toolbar_metrics,Pr=p$3({token:this.instance.config.token},$,{apiURL:this.instance.requestRouter.endpointFor("ui")},kr?{instrument:!1}:{});if(t$a.localStorage.setItem(Co,JSON.stringify(p$3({},Pr,{source:void 0}))),this.Fo()===2)this.Oo(Pr);else if(this.Fo()===0){var Rr;this.Mo(1),(Rr=h$3.__PosthogExtensions__)==null||Rr.loadExternalDependency==null||Rr.loadExternalDependency(this.instance,"toolbar",(Ir=>{if(Ir)return Fo.error("[Toolbar] Failed to load",Ir),void this.Mo(0);this.Mo(2),this.Oo(Pr)})),Oe(t$a,"turbolinks:load",(()=>{this.Mo(0),this.loadToolbar(Pr)}))}return!0}Po($){return this.loadToolbar($)}maybeLoadEditor($,Cr,kr){return $===void 0&&($=void 0),Cr===void 0&&(Cr=void 0),kr===void 0&&(kr=void 0),this.maybeLoadToolbar($,Cr,kr)}}},aa=p$3({experiments:Vo},Qo),la={conversations:class{constructor($){this.Lo=void 0,this._conversationsManager=null,this.Do=!1,this.Bo=null,this._instance=$}initialize(){this.loadIfEnabled()}onRemoteConfig($){if(!this._instance.config.disable_conversations){var Cr=$.conversations;D(Cr)||(N$1(Cr)?this.Lo=Cr:(this.Lo=Cr.enabled,this.Bo=Cr),this.loadIfEnabled())}}reset(){var $;($=this._conversationsManager)==null||$.reset(),this._conversationsManager=null,this.Lo=void 0,this.Bo=null}loadIfEnabled(){if(!(this._conversationsManager||this.Do||this._instance.config.disable_conversations||Ie(this._instance.config)||this._instance.config.cookieless_mode&&this._instance.consent.isOptedOut())){var $=h$3==null?void 0:h$3.__PosthogExtensions__;if($&&!C(this.Lo)&&this.Lo)if(this.Bo&&this.Bo.token){this.Do=!0;try{var Cr=$.initConversations;if(Cr)return this.jo(Cr),void(this.Do=!1);var kr=$.loadExternalDependency;if(!kr)return void this.qo(ue);kr(this._instance,"conversations",(Pr=>{Pr||!$.initConversations?this.qo("Could not load conversations script",Pr):this.jo($.initConversations),this.Do=!1}))}catch(Pr){this.qo("Error initializing conversations",Pr),this.Do=!1}}else Wo.error("Conversations enabled but missing token in remote config.")}}jo($){if(this.Bo)try{this._conversationsManager=$(this.Bo,this._instance),Wo.info("Conversations loaded successfully")}catch(Cr){this.qo("Error completing conversations initialization",Cr)}else Wo.error("Cannot complete initialization: remote config is null")}qo($,Cr){Wo.error($,Cr),this._conversationsManager=null,this.Do=!1}show(){this._conversationsManager?this._conversationsManager.show():Wo.warn("Conversations not loaded yet.")}hide(){this._conversationsManager&&this._conversationsManager.hide()}isAvailable(){return this.Lo===!0&&!M$1(this._conversationsManager)}isVisible(){var $,Cr;return($=(Cr=this._conversationsManager)==null?void 0:Cr.isVisible())!==null&&$!==void 0&&$}sendMessage($,Cr,kr){var Pr=this;return f$2((function*(){return Pr._conversationsManager?Pr._conversationsManager.sendMessage($,Cr,kr):(Wo.warn(Go),null)}))()}getMessages($,Cr){var kr=this;return f$2((function*(){return kr._conversationsManager?kr._conversationsManager.getMessages($,Cr):(Wo.warn(Go),null)}))()}markAsRead($){var Cr=this;return f$2((function*(){return Cr._conversationsManager?Cr._conversationsManager.markAsRead($):(Wo.warn(Go),null)}))()}getTickets($){var Cr=this;return f$2((function*(){return Cr._conversationsManager?Cr._conversationsManager.getTickets($):(Wo.warn(Go),null)}))()}requestRestoreLink($){var Cr=this;return f$2((function*(){return Cr._conversationsManager?Cr._conversationsManager.requestRestoreLink($):(Wo.warn(Go),null)}))()}restoreFromToken($){var Cr=this;return f$2((function*(){return Cr._conversationsManager?Cr._conversationsManager.restoreFromToken($):(Wo.warn(Go),null)}))()}restoreFromUrlToken(){var $=this;return f$2((function*(){return $._conversationsManager?$._conversationsManager.restoreFromUrlToken():(Wo.warn(Go),null)}))()}getCurrentTicketId(){var $,Cr;return($=(Cr=this._conversationsManager)==null?void 0:Cr.getCurrentTicketId())!==null&&$!==void 0?$:null}getWidgetSessionId(){var $,Cr;return($=(Cr=this._conversationsManager)==null?void 0:Cr.getWidgetSessionId())!==null&&$!==void 0?$:null}Qr(){var $;($=this._conversationsManager)==null||$.setIdentity()}tn(){var $;($=this._conversationsManager)==null||$.clearIdentity()}}},ua={logs:class{constructor($){var Cr;this.Zo=!1,this.$o=!1,this.qt=wi("[logs]"),this.Vo=[],this.Ho=0,this.zo=0,this.Uo=!1,this._instance=$,this._instance&&(Cr=this._instance.config.logs)!=null&&Cr.captureConsoleLogs&&(this.Zo=!0)}initialize(){this.loadIfEnabled()}onRemoteConfig($){var Cr,kr=(Cr=$.logs)==null?void 0:Cr.captureConsoleLogs;!D(kr)&&kr&&(this.Zo=!0,this.loadIfEnabled())}reset(){this.Vo=[],this.Ni&&(clearTimeout(this.Ni),this.Ni=void 0),this.Ho=0,this.zo=0,this.Uo=!1}loadIfEnabled(){if(this.Zo&&!this.$o){var $=h$3==null?void 0:h$3.__PosthogExtensions__;if($){var Cr=$.loadExternalDependency;Cr?Cr(this._instance,"logs",(kr=>{var Pr;kr||(Pr=$.logs)==null||!Pr.initializeLogs?this.qt.error("Could not load logs script",kr):($.logs.initializeLogs(this._instance),this.$o=!0)})):this.qt.error(ue)}else this.qt.error("PostHog Extensions not found.")}}captureLog($){var Cr,kr,Pr,Rr,Ir,Fr;if(this._instance.is_capturing())if($&&$.body){var Lr=(Cr=(kr=this._instance.config.logs)==null?void 0:kr.flushIntervalMs)!==null&&Cr!==void 0?Cr:3e3,qr=(Pr=(Rr=this._instance.config.logs)==null?void 0:Rr.maxLogsPerInterval)!==null&&Pr!==void 0?Pr:1e3,fa=Date.now();if(Lr>fa-this.zo||(this.zo=fa,this.Ho=0,this.Uo=!1),qr>this.Ho){this.Ho++;var pa=(function(ga,xa){var ya=ga.level||"info",{text:ba,number:Aa}=Yo[ya]||Jo,ka=String(Date.now())+"000000",Ea={};xa.distinctId&&(Ea.posthogDistinctId=xa.distinctId),xa.sessionId&&(Ea.sessionId=xa.sessionId),xa.currentUrl&&(Ea["url.full"]=xa.currentUrl),xa.activeFeatureFlags&&xa.activeFeatureFlags.length>0&&(Ea.feature_flags=xa.activeFeatureFlags);var Sa=p$3({},Ea,ga.attributes||{}),Ca={timeUnixNano:ka,observedTimeUnixNano:ka,severityNumber:Aa,severityText:ba,body:{stringValue:ga.body},attributes:Xo(Sa)};return ga.trace_id&&(Ca.traceId=ga.trace_id),ga.span_id&&(Ca.spanId=ga.span_id),C(ga.trace_flags)||(Ca.flags=ga.trace_flags),Ca})($,this.Yo());this.Vo.push({record:pa}),((Ir=(Fr=this._instance.config.logs)==null?void 0:Fr.maxBufferSize)!==null&&Ir!==void 0?Ir:100)>this.Vo.length?this.Go():this.flushLogs()}else this.Uo||(this.qt.warn("captureLog dropping logs: exceeded "+qr+" logs per "+Lr+"ms"),this.Uo=!0)}else this.qt.warn("captureLog requires a body")}get logger(){return this.Wo||(this.Wo={trace:($,Cr)=>this.captureLog({body:$,level:"trace",attributes:Cr}),debug:($,Cr)=>this.captureLog({body:$,level:"debug",attributes:Cr}),info:($,Cr)=>this.captureLog({body:$,level:"info",attributes:Cr}),warn:($,Cr)=>this.captureLog({body:$,level:"warn",attributes:Cr}),error:($,Cr)=>this.captureLog({body:$,level:"error",attributes:Cr}),fatal:($,Cr)=>this.captureLog({body:$,level:"fatal",attributes:Cr})}),this.Wo}flushLogs($){if(this.Ni&&(clearTimeout(this.Ni),this.Ni=void 0),this.Vo.length!==0){var Cr=this.Vo;this.Vo=[];var kr=this._instance.config.logs,Pr=p$3({"service.name":(kr==null?void 0:kr.serviceName)||"unknown_service"},(kr==null?void 0:kr.environment)&&{"deployment.environment":kr.environment},(kr==null?void 0:kr.serviceVersion)&&{"service.version":kr.serviceVersion},kr==null?void 0:kr.resourceAttributes),Rr=(function(Fr,Lr){return{resourceLogs:[{resource:{attributes:Xo(Lr)},scopeLogs:[{scope:{name:v$1.LIB_NAME},logRecords:Fr}]}]}})(Cr.map((Fr=>Fr.record)),Pr),Ir=this._instance.requestRouter.endpointFor("api","/i/v1/logs")+"?token="+encodeURIComponent(this._instance.config.token);this._instance.Lr({method:"POST",url:Ir,data:Rr,compression:"best-available",batchKey:"logs",transport:$})}}Go(){var $,Cr;this.Ni||(this.Ni=setTimeout((()=>{this.Ni=void 0,this.flushLogs()}),($=(Cr=this._instance.config.logs)==null?void 0:Cr.flushIntervalMs)!==null&&$!==void 0?$:3e3))}Yo(){var $,Cr={lib:v$1.LIB_NAME};if(Cr.distinctId=this._instance.get_distinct_id(),this._instance.sessionManager){var{sessionId:kr}=this._instance.sessionManager.checkAndGetSessionAndWindowId(!0);Cr.sessionId=kr}if(h$3!=null&&($=h$3.location)!=null&&$.href&&(Cr.currentUrl=h$3.location.href),this._instance.featureFlags){var Pr=this._instance.featureFlags.getFlags();Pr&&Pr.length>0&&(Cr.activeFeatureFlags=Pr)}return Cr}}},ha=p$3({},Qo,Zo,ta,ia,ea,ra,na,sa,oa,aa,la,ua);Sn.__defaultExtensionClasses=p$3({},ha);var da,va=(da=hn[gn]=new Sn,(function(){function $(){$.done||($.done=!0,mn=!1,Ee(hn,(function(Cr){Cr._dom_loaded()})))}r$c!=null&&r$c.addEventListener?r$c.readyState==="complete"?$():Oe(r$c,"DOMContentLoaded",$,{capture:!1}):t$a&&yi.error("Browser doesn't support `document.addEventListener` so PostHog couldn't be initialized")})(),da),defaultPostHogInstance;function setDefaultPostHogInstance($){defaultPostHogInstance=$}function getDefaultPostHogInstance(){return defaultPostHogInstance}var PostHogContext=reactExports.createContext({get client(){return getDefaultPostHogInstance()},bootstrap:void 0});function isDeepEqual($,Cr,kr){if(kr===void 0&&(kr=new WeakMap),$===Cr)return!0;if(typeof $!="object"||$===null||typeof Cr!="object"||Cr===null)return!1;if(kr.has($)&&kr.get($)===Cr)return!0;kr.set($,Cr);var Pr=Object.keys($),Rr=Object.keys(Cr);if(Pr.length!==Rr.length)return!1;for(var Ir=0,Fr=Pr;Ir<Fr.length;Ir++){var Lr=Fr[Ir];if(!Rr.includes(Lr)||!isDeepEqual($[Lr],Cr[Lr],kr))return!1}return!0}function PostHogProvider($){var Cr,kr,Pr=$.children,Rr=$.client,Ir=$.apiKey,Fr=$.options,Lr=reactExports.useRef(null),qr=reactExports.useMemo(function(){if(Rr)return Ir&&console.warn("[PostHog.js] You have provided both `client` and `apiKey` to `PostHogProvider`. `apiKey` will be ignored in favour of `client`."),Fr&&console.warn("[PostHog.js] You have provided both `client` and `options` to `PostHogProvider`. `options` will be ignored in favour of `client`."),Rr;var fa=getDefaultPostHogInstance();return Ir||console.warn("[PostHog.js] No `apiKey` or `client` were provided to `PostHogProvider`. Using default global `window.posthog` instance. You must initialize it manually. This is not recommended behavior."),fa},[Rr,Ir,JSON.stringify(Fr)]);return reactExports.useEffect(function(){if(!Rr){var fa=getDefaultPostHogInstance(),pa=Lr.current;pa?(Ir!==pa.apiKey&&console.warn("[PostHog.js] You have provided a different `apiKey` to `PostHogProvider` than the one that was already initialized. This is not supported by our provider and we'll keep using the previous key. If you need to toggle between API Keys you need to control the `client` yourself and pass it in as a prop rather than an `apiKey` prop."),Fr&&!isDeepEqual(Fr,pa.options)&&fa.set_config(Fr),Lr.current={apiKey:Ir,options:Fr??{}}):(fa.__loaded&&console.warn("[PostHog.js] `posthog` was already loaded elsewhere. This may cause issues."),fa.init(Ir,Fr),Lr.current={apiKey:Ir,options:Fr??{}})}},[Rr,Ir,JSON.stringify(Fr)]),React.createElement(PostHogContext.Provider,{value:{client:qr,bootstrap:(Cr=Fr==null?void 0:Fr.bootstrap)!==null&&Cr!==void 0?Cr:(kr=Rr==null?void 0:Rr.config)===null||kr===void 0?void 0:kr.bootstrap}},Pr)}var isFunction$1=function($){return typeof $=="function"},usePostHog=function(){var $=reactExports.useContext(PostHogContext).client;return $},extendStatics=function($,Cr){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(kr,Pr){kr.__proto__=Pr}||function(kr,Pr){for(var Rr in Pr)Object.prototype.hasOwnProperty.call(Pr,Rr)&&(kr[Rr]=Pr[Rr])},extendStatics($,Cr)};function __extends($,Cr){if(typeof Cr!="function"&&Cr!==null)throw new TypeError("Class extends value "+String(Cr)+" is not a constructor or null");extendStatics($,Cr);function kr(){this.constructor=$}$.prototype=Cr===null?Object.create(Cr):(kr.prototype=Cr.prototype,new kr)}typeof SuppressedError=="function"&&SuppressedError;var INITIAL_STATE={componentStack:null,exceptionEvent:null,error:null},__POSTHOG_ERROR_MESSAGES={INVALID_FALLBACK:"[PostHog.js][PostHogErrorBoundary] Invalid fallback prop, provide a valid React element or a function that returns a valid React element."},PostHogErrorBoundary=(function($){__extends(Cr,$);function Cr(kr){var Pr=$.call(this,kr)||this;return Pr.state=INITIAL_STATE,Pr}return Cr.prototype.componentDidCatch=function(kr,Pr){var Rr=this.props.additionalProperties,Ir;isFunction$1(Rr)?Ir=Rr(kr):typeof Rr=="object"&&(Ir=Rr);var Fr=this.context.client,Lr=Fr.captureException(kr,Ir),qr=Pr.componentStack;this.setState({error:kr,componentStack:qr??null,exceptionEvent:Lr})},Cr.prototype.render=function(){var kr=this.props,Pr=kr.children,Rr=kr.fallback,Ir=this.state;if(Ir.componentStack==null)return isFunction$1(Pr)?Pr():Pr;var Fr=isFunction$1(Rr)?React.createElement(Rr,{error:Ir.error,componentStack:Ir.componentStack,exceptionEvent:Ir.exceptionEvent}):Rr;return React.isValidElement(Fr)?Fr:(console.warn(__POSTHOG_ERROR_MESSAGES.INVALID_FALLBACK),React.createElement(React.Fragment,null))},Cr.contextType=PostHogContext,Cr})(React.Component);setDefaultPostHogInstance(va);var client={},reactDom={exports:{}},reactDom_production_min={},scheduler={exports:{}},scheduler_production_min={};/**
|
|
17
|
+
*/var hasRequiredReactJsxRuntime_production_min;function requireReactJsxRuntime_production_min(){if(hasRequiredReactJsxRuntime_production_min)return reactJsxRuntime_production_min;hasRequiredReactJsxRuntime_production_min=1;var $=requireReact(),Cr=Symbol.for("react.element"),kr=Symbol.for("react.fragment"),Pr=Object.prototype.hasOwnProperty,Rr=$.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Ir={key:!0,ref:!0,__self:!0,__source:!0};function Fr(Lr,qr,fa){var pa,ga={},xa=null,ya=null;fa!==void 0&&(xa=""+fa),qr.key!==void 0&&(xa=""+qr.key),qr.ref!==void 0&&(ya=qr.ref);for(pa in qr)Pr.call(qr,pa)&&!Ir.hasOwnProperty(pa)&&(ga[pa]=qr[pa]);if(Lr&&Lr.defaultProps)for(pa in qr=Lr.defaultProps,qr)ga[pa]===void 0&&(ga[pa]=qr[pa]);return{$$typeof:Cr,type:Lr,key:xa,ref:ya,props:ga,_owner:Rr.current}}return reactJsxRuntime_production_min.Fragment=kr,reactJsxRuntime_production_min.jsx=Fr,reactJsxRuntime_production_min.jsxs=Fr,reactJsxRuntime_production_min}var hasRequiredJsxRuntime;function requireJsxRuntime(){return hasRequiredJsxRuntime||(hasRequiredJsxRuntime=1,jsxRuntime.exports=requireReactJsxRuntime_production_min()),jsxRuntime.exports}var jsxRuntimeExports=requireJsxRuntime(),reactExports=requireReact();const React=getDefaultExportFromCjs(reactExports),React$1=_mergeNamespaces({__proto__:null,default:React},[reactExports]);var t$a=typeof window<"u"?window:void 0,i$2=typeof globalThis<"u"?globalThis:t$a;typeof self>"u"&&(i$2.self=i$2),typeof File>"u"&&(i$2.File=function(){});var e$n=i$2==null?void 0:i$2.navigator,r$c=i$2==null?void 0:i$2.document,s$d=i$2==null?void 0:i$2.location,n$9=i$2==null?void 0:i$2.fetch,o$d=i$2!=null&&i$2.XMLHttpRequest&&"withCredentials"in new i$2.XMLHttpRequest?i$2.XMLHttpRequest:void 0,a$h=i$2==null?void 0:i$2.AbortController,l$4=i$2==null?void 0:i$2.CompressionStream,u$1=e$n==null?void 0:e$n.userAgent,h$3=t$a??{},d$1="1.369.4",v$1={DEBUG:!1,LIB_VERSION:d$1,LIB_NAME:"web",JS_SDK_VERSION:d$1};function c$6($,Cr,kr,Pr,Rr,Ir,Fr){try{var Lr=$[Ir](Fr),qr=Lr.value}catch(fa){return void kr(fa)}Lr.done?Cr(qr):Promise.resolve(qr).then(Pr,Rr)}function f$2($){return function(){var Cr=this,kr=arguments;return new Promise((function(Pr,Rr){var Ir=$.apply(Cr,kr);function Fr(qr){c$6(Ir,Pr,Rr,Fr,Lr,"next",qr)}function Lr(qr){c$6(Ir,Pr,Rr,Fr,Lr,"throw",qr)}Fr(void 0)}))}}function p$3(){return p$3=Object.assign?Object.assign.bind():function($){for(var Cr=1;arguments.length>Cr;Cr++){var kr=arguments[Cr];for(var Pr in kr)({}).hasOwnProperty.call(kr,Pr)&&($[Pr]=kr[Pr])}return $},p$3.apply(null,arguments)}function _$2($,Cr){if($==null)return{};var kr={};for(var Pr in $)if({}.hasOwnProperty.call($,Pr)){if(Cr.indexOf(Pr)!==-1)continue;kr[Pr]=$[Pr]}return kr}function g$1(){return(g$1=f$2((function*($,Cr,kr){Cr===void 0&&(Cr=!0);try{var Pr=new Blob([$],{type:"text/plain"}).stream().pipeThrough(new CompressionStream("gzip"));return yield new Response(Pr).blob()}catch(Rr){if(kr!=null&&kr.rethrow)throw Rr;return Cr&&console.error("Failed to gzip compress data",Rr),null}}))).apply(this,arguments)}var m$6=["$snapshot","$pageview","$pageleave","$set","survey dismissed","survey sent","survey shown","$identify","$groupidentify","$create_alias","$$client_ingestion_warning","$web_experiment_applied","$feature_enrollment_update","$feature_flag_called"],b=["amazonbot","amazonproductbot","app.hypefactors.com","applebot","archive.org_bot","awariobot","backlinksextendedbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","dataforseobot","deepscan","duckduckbot","facebookexternal","facebookcatalog","http://yandex.com/bots","hubspot","ia_archiver","leikibot","linkedinbot","meta-externalagent","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","sebot-wa","sitebulb","slackbot","slurp","trendictionbot","turnitin","twitterbot","vercel-screenshot","vercelbot","yahoo! slurp","yandexbot","zoombot","bot.htm","bot.php","(bot;","bot/","crawler","ahrefsbot","ahrefssiteaudit","semrushbot","siteauditbot","splitsignalbot","gptbot","oai-searchbot","chatgpt-user","perplexitybot","better uptime bot","sentryuptimebot","uptimerobot","headlesschrome","cypress","google-hoteladsverifier","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleother","google-cloudvertexbot","googleweblight","mediapartners-google","storebot-google","google-inspectiontool","bytespider"],y=function($,Cr){if(Cr===void 0&&(Cr=[]),!$)return!1;var kr=$.toLowerCase();return b.concat(Cr).some((Pr=>{var Rr=Pr.toLowerCase();return kr.indexOf(Rr)!==-1}))};function w$1($,Cr){return $.indexOf(Cr)!==-1}var E=function($){return $.trim()},S=function($){return $.replace(/^\$/,"")},x=Object.prototype,T=x.hasOwnProperty,R=x.toString,k=Array.isArray||function($){return R.call($)==="[object Array]"},P$1=$=>typeof $=="function",O=$=>$===Object($)&&!k($),I$1=$=>{if(O($)){for(var Cr in $)if(T.call($,Cr))return!1;return!0}return!1},C=$=>$===void 0,F=$=>R.call($)=="[object String]",A=$=>F($)&&$.trim().length===0,M$1=$=>$===null,D=$=>C($)||M$1($),L=$=>R.call($)=="[object Number]"&&$==$,U=$=>L($)&&$>0,N$1=$=>R.call($)==="[object Boolean]",j$1=$=>$ instanceof FormData,z=$=>w$1(m$6,$);function B($){return $===null||typeof $!="object"}function H($,Cr){return{}.toString.call($)==="[object "+Cr+"]"}function q($){return typeof Event<"u"&&(function(Cr,kr){try{return Cr instanceof kr}catch{return!1}})($,Event)}var V=[!0,"true",1,"1","yes"],W=$=>w$1(V,$),G=[!1,"false",0,"0","no"];function Y($,Cr,kr,Pr,Rr){return Cr>kr&&(Pr.warn("min cannot be greater than max."),Cr=kr),L($)?$>kr?(Pr.warn(" cannot be greater than max: "+kr+". Using max value instead."),kr):Cr>$?(Pr.warn(" cannot be less than min: "+Cr+". Using min value instead."),Cr):$:(Pr.warn(" must be a number. using max or fallback. max: "+kr+", fallback: "+Rr),Y(Rr||kr,Cr,kr,Pr))}class J{constructor(Cr){this.Pt={},this.Dt=Cr.Dt,this.jt=Y(Cr.bucketSize,0,100,Cr.qt),this.$t=Y(Cr.refillRate,0,this.jt,Cr.qt),this.Vt=Y(Cr.refillInterval,0,864e5,Cr.qt)}Ht(Cr,kr){var Pr=Math.floor((kr-Cr.lastAccess)/this.Vt);Pr>0&&(Cr.tokens=Math.min(Cr.tokens+Pr*this.$t,this.jt),Cr.lastAccess=Cr.lastAccess+Pr*this.Vt)}consumeRateLimit(Cr){var kr,Pr=Date.now(),Rr=String(Cr),Ir=this.Pt[Rr];return Ir?this.Ht(Ir,Pr):this.Pt[Rr]=Ir={tokens:this.jt,lastAccess:Pr},Ir.tokens===0||(Ir.tokens--,Ir.tokens===0&&((kr=this.Dt)==null||kr.call(this,Cr)),Ir.tokens===0)}stop(){this.Pt={}}}var K,X,Q,Z="Mobile",tt="iOS",it="Android",et="Tablet",rt=it+" "+et,st="iPad",nt="Apple",ot=nt+" Watch",at="Safari",lt="BlackBerry",ut="Samsung",ht=ut+"Browser",dt=ut+" Internet",vt="Chrome",ct=vt+" OS",ft=vt+" "+tt,pt="Internet Explorer",_t=pt+" "+Z,gt="Opera",mt=gt+" Mini",bt="Edge",yt="Microsoft "+bt,wt="Firefox",Et=wt+" "+tt,St="Nintendo",xt="PlayStation",Tt="Xbox",$t=it+" "+Z,Rt=Z+" "+at,kt="Windows",Pt=kt+" Phone",Ot="Nokia",It="Ouya",Ct="Generic",Ft=Ct+" "+Z.toLowerCase(),At=Ct+" "+et.toLowerCase(),Mt="Konqueror",Dt="(\\d+(\\.\\d+)?)",Lt=new RegExp("Version/"+Dt),Ut=new RegExp(Tt,"i"),Nt=new RegExp(xt+" \\w+","i"),jt=new RegExp(St+" \\w+","i"),zt=new RegExp(lt+"|PlayBook|BB10","i"),Bt={"NT3.51":"NT 3.11","NT4.0":"NT 4.0","5.0":"2000",5.1:"XP",5.2:"XP","6.0":"Vista",6.1:"7",6.2:"8",6.3:"8.1",6.4:"10","10.0":"10"},Ht=function($,Cr){return Cr=Cr||"",w$1($," OPR/")&&w$1($,"Mini")?mt:w$1($," OPR/")?gt:zt.test($)?lt:w$1($,"IE"+Z)||w$1($,"WPDesktop")?_t:w$1($,ht)?dt:w$1($,bt)||w$1($,"Edg/")?yt:w$1($,"FBIOS")?"Facebook "+Z:w$1($,"UCWEB")||w$1($,"UCBrowser")?"UC Browser":w$1($,"CriOS")?ft:w$1($,"CrMo")||w$1($,vt)?vt:w$1($,it)&&w$1($,at)?$t:w$1($,"FxiOS")?Et:w$1($.toLowerCase(),Mt.toLowerCase())?Mt:((kr,Pr)=>Pr&&w$1(Pr,nt)||(function(Rr){return w$1(Rr,at)&&!w$1(Rr,vt)&&!w$1(Rr,it)})(kr))($,Cr)?w$1($,Z)?Rt:at:w$1($,wt)?wt:w$1($,"MSIE")||w$1($,"Trident/")?pt:w$1($,"Gecko")?wt:""},qt={[_t]:[new RegExp("rv:"+Dt)],[yt]:[new RegExp(bt+"?\\/"+Dt)],[vt]:[new RegExp("("+vt+"|CrMo)\\/"+Dt)],[ft]:[new RegExp("CriOS\\/"+Dt)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+Dt)],[at]:[Lt],[Rt]:[Lt],[gt]:[new RegExp("(Opera|OPR)\\/"+Dt)],[wt]:[new RegExp(wt+"\\/"+Dt)],[Et]:[new RegExp("FxiOS\\/"+Dt)],[Mt]:[new RegExp("Konqueror[:/]?"+Dt,"i")],[lt]:[new RegExp(lt+" "+Dt),Lt],[$t]:[new RegExp("android\\s"+Dt,"i")],[dt]:[new RegExp(ht+"\\/"+Dt)],[pt]:[new RegExp("(rv:|MSIE )"+Dt)],Mozilla:[new RegExp("rv:"+Dt)]},Vt=function($,Cr){var kr=Ht($,Cr),Pr=qt[kr];if(C(Pr))return null;for(var Rr=0;Pr.length>Rr;Rr++){var Ir=$.match(Pr[Rr]);if(Ir)return parseFloat(Ir[Ir.length-2])}return null},Wt=[[new RegExp(Tt+"; "+Tt+" (.*?)[);]","i"),$=>[Tt,$&&$[1]||""]],[new RegExp(St,"i"),[St,""]],[new RegExp(xt,"i"),[xt,""]],[zt,[lt,""]],[new RegExp(kt,"i"),($,Cr)=>{if(/Phone/.test(Cr)||/WPDesktop/.test(Cr))return[Pt,""];if(new RegExp(Z).test(Cr)&&!/IEMobile\b/.test(Cr))return[kt+" "+Z,""];var kr=/Windows NT ([0-9.]+)/i.exec(Cr);if(kr&&kr[1]){var Pr=Bt[kr[1]]||"";return/arm/i.test(Cr)&&(Pr="RT"),[kt,Pr]}return[kt,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,$=>$&&$[3]?[tt,[$[3],$[4],$[5]||"0"].join(".")]:[tt,""]],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,$=>{var Cr="";return $&&$.length>=3&&(Cr=C($[2])?$[3]:$[2]),["watchOS",Cr]}],[new RegExp("("+it+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+it+")","i"),$=>$&&$[2]?[it,[$[2],$[3],$[4]||"0"].join(".")]:[it,""]],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,$=>{var Cr=["Mac OS X",""];return $&&$[1]&&(Cr[1]=[$[1],$[2],$[3]||"0"].join(".")),Cr}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[ct,""]],[/Linux|debian/i,["Linux",""]]],Gt=function($){return jt.test($)?St:Nt.test($)?xt:Ut.test($)?Tt:new RegExp(It,"i").test($)?It:new RegExp("("+Pt+"|WPDesktop)","i").test($)?Pt:/iPad/.test($)?st:/iPod/.test($)?"iPod Touch":/iPhone/.test($)?"iPhone":/(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i.test($)?ot:zt.test($)?lt:/(kobo)\s(ereader|touch)/i.test($)?"Kobo":new RegExp(Ot,"i").test($)?Ot:/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i.test($)||/(kf[a-z]+)( bui|\)).+silk\//i.test($)?"Kindle Fire":/(Android|ZTE)/i.test($)?new RegExp(Z).test($)&&!/(9138B|TB782B|Nexus [97]|pixel c|HUAWEISHT|BTV|noble nook|smart ultra 6)/i.test($)||/pixel[\daxl ]{1,6}/i.test($)&&!/pixel c/i.test($)||/(huaweimed-al00|tah-|APA|SM-G92|i980|zte|U304AA)/i.test($)||/lmy47v/i.test($)&&!/QTAQZ3/i.test($)?it:rt:new RegExp("(pda|"+Z+")","i").test($)?Ft:new RegExp(et,"i").test($)&&!new RegExp(et+" pc","i").test($)?At:""},Yt=$=>$ instanceof Error;function Jt($){var Cr=globalThis._posthogChunkIds;if(Cr){var kr=Object.keys(Cr);return Q&&kr.length===X||(X=kr.length,Q=kr.reduce(((Pr,Rr)=>{K||(K={});var Ir=K[Rr];if(Ir)Pr[Ir[0]]=Ir[1];else for(var Fr=$(Rr),Lr=Fr.length-1;Lr>=0;Lr--){var qr=Fr[Lr],fa=qr==null?void 0:qr.filename,pa=Cr[Rr];if(fa&&pa){Pr[fa]=pa,K[Rr]=[fa,pa];break}}return Pr}),{})),Q}}class Kt{constructor(Cr,kr,Pr){Pr===void 0&&(Pr=[]),this.coercers=Cr,this.stackParser=kr,this.modifiers=Pr}buildFromUnknown(Cr,kr){kr===void 0&&(kr={});var Pr=kr&&kr.mechanism||{handled:!0,type:"generic"},Rr=this.buildCoercingContext(Pr,kr,0).apply(Cr),Ir=this.buildParsingContext(kr),Fr=this.parseStacktrace(Rr,Ir);return{$exception_list:this.convertToExceptionList(Fr,Pr),$exception_level:"error"}}modifyFrames(Cr){var kr=this;return f$2((function*(){for(var Pr of Cr)Pr.stacktrace&&Pr.stacktrace.frames&&k(Pr.stacktrace.frames)&&(Pr.stacktrace.frames=yield kr.applyModifiers(Pr.stacktrace.frames));return Cr}))()}coerceFallback(Cr){var kr;return{type:"Error",value:"Unknown error",stack:(kr=Cr.syntheticException)==null?void 0:kr.stack,synthetic:!0}}parseStacktrace(Cr,kr){var Pr,Rr;return Cr.cause!=null&&(Pr=this.parseStacktrace(Cr.cause,kr)),Cr.stack!=""&&Cr.stack!=null&&(Rr=this.applyChunkIds(this.stackParser(Cr.stack,Cr.synthetic?kr.skipFirstLines:0),kr.chunkIdMap)),p$3({},Cr,{cause:Pr,stack:Rr})}applyChunkIds(Cr,kr){return Cr.map((Pr=>(Pr.filename&&kr&&(Pr.chunk_id=kr[Pr.filename]),Pr)))}applyCoercers(Cr,kr){for(var Pr of this.coercers)if(Pr.match(Cr))return Pr.coerce(Cr,kr);return this.coerceFallback(kr)}applyModifiers(Cr){var kr=this;return f$2((function*(){var Pr=Cr;for(var Rr of kr.modifiers)Pr=yield Rr(Pr);return Pr}))()}convertToExceptionList(Cr,kr){var Pr,Rr,Ir,Fr={type:Cr.type,value:Cr.value,mechanism:{type:(Pr=kr.type)!==null&&Pr!==void 0?Pr:"generic",handled:(Rr=kr.handled)===null||Rr===void 0||Rr,synthetic:(Ir=Cr.synthetic)!==null&&Ir!==void 0&&Ir}};Cr.stack&&(Fr.stacktrace={type:"raw",frames:Cr.stack});var Lr=[Fr];return Cr.cause!=null&&Lr.push(...this.convertToExceptionList(Cr.cause,p$3({},kr,{handled:!0}))),Lr}buildParsingContext(Cr){var kr;return{chunkIdMap:Jt(this.stackParser),skipFirstLines:(kr=Cr.skipFirstLines)!==null&&kr!==void 0?kr:1}}buildCoercingContext(Cr,kr,Pr){Pr===void 0&&(Pr=0);var Rr=(Ir,Fr)=>{if(4>=Fr){var Lr=this.buildCoercingContext(Cr,kr,Fr);return this.applyCoercers(Ir,Lr)}};return p$3({},kr,{syntheticException:Pr==0?kr.syntheticException:void 0,mechanism:Cr,apply:Ir=>Rr(Ir,Pr),next:Ir=>Rr(Ir,Pr+1)})}}var Xt="?";function Qt($,Cr,kr,Pr,Rr){var Ir={platform:$,filename:Cr,function:kr==="<anonymous>"?Xt:kr,in_app:!0};return C(Pr)||(Ir.lineno=Pr),C(Rr)||(Ir.colno=Rr),Ir}var Zt=($,Cr)=>{var kr=$.indexOf("safari-extension")!==-1,Pr=$.indexOf("safari-web-extension")!==-1;return kr||Pr?[$.indexOf("@")!==-1?$.split("@")[0]:Xt,kr?"safari-extension:"+Cr:"safari-web-extension:"+Cr]:[$,Cr]},ti=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,ii=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,ei=/\((\S*)(?::(\d+))(?::(\d+))\)/,ri=($,Cr)=>{var kr=ti.exec($);if(kr){var[,Pr,Rr,Ir]=kr;return Qt(Cr,Pr,Xt,+Rr,+Ir)}var Fr=ii.exec($);if(Fr){if(Fr[2]&&Fr[2].indexOf("eval")===0){var Lr=ei.exec(Fr[2]);Lr&&(Fr[2]=Lr[1],Fr[3]=Lr[2],Fr[4]=Lr[3])}var[qr,fa]=Zt(Fr[1]||Xt,Fr[2]);return Qt(Cr,fa,qr,Fr[3]?+Fr[3]:void 0,Fr[4]?+Fr[4]:void 0)}},si=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,ni=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,oi=($,Cr)=>{var kr=si.exec($);if(kr){if(kr[3]&&kr[3].indexOf(" > eval")>-1){var Pr=ni.exec(kr[3]);Pr&&(kr[1]=kr[1]||"eval",kr[3]=Pr[1],kr[4]=Pr[2],kr[5]="")}var Rr=kr[3],Ir=kr[1]||Xt;return[Ir,Rr]=Zt(Ir,Rr),Qt(Cr,Rr,Ir,kr[4]?+kr[4]:void 0,kr[5]?+kr[5]:void 0)}},ai=/\(error: (.*)\)/;class li{match(Cr){return this.isDOMException(Cr)||this.isDOMError(Cr)}coerce(Cr,kr){var Pr=F(Cr.stack);return{type:this.getType(Cr),value:this.getValue(Cr),stack:Pr?Cr.stack:void 0,cause:Cr.cause?kr.next(Cr.cause):void 0,synthetic:!1}}getType(Cr){return this.isDOMError(Cr)?"DOMError":"DOMException"}getValue(Cr){var kr=Cr.name||(this.isDOMError(Cr)?"DOMError":"DOMException");return Cr.message?kr+": "+Cr.message:kr}isDOMException(Cr){return H(Cr,"DOMException")}isDOMError(Cr){return H(Cr,"DOMError")}}class ui{match(Cr){return(kr=>kr instanceof Error)(Cr)}coerce(Cr,kr){return{type:this.getType(Cr),value:this.getMessage(Cr,kr),stack:this.getStack(Cr),cause:Cr.cause?kr.next(Cr.cause):void 0,synthetic:!1}}getType(Cr){return Cr.name||Cr.constructor.name}getMessage(Cr,kr){var Pr=Cr.message;return String(Pr.error&&typeof Pr.error.message=="string"?Pr.error.message:Pr)}getStack(Cr){return Cr.stacktrace||Cr.stack||void 0}}class hi{constructor(){}match(Cr){return H(Cr,"ErrorEvent")&&Cr.error!=null}coerce(Cr,kr){var Pr;return kr.apply(Cr.error)||{type:"ErrorEvent",value:Cr.message,stack:(Pr=kr.syntheticException)==null?void 0:Pr.stack,synthetic:!0}}}var di=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;class vi{match(Cr){return typeof Cr=="string"}coerce(Cr,kr){var Pr,[Rr,Ir]=this.getInfos(Cr);return{type:Rr??"Error",value:Ir??Cr,stack:(Pr=kr.syntheticException)==null?void 0:Pr.stack,synthetic:!0}}getInfos(Cr){var kr="Error",Pr=Cr,Rr=Cr.match(di);return Rr&&(kr=Rr[1],Pr=Rr[2]),[kr,Pr]}}var ci=["fatal","error","warning","log","info","debug"];function fi($,Cr){Cr===void 0&&(Cr=40);var kr=Object.keys($);if(kr.sort(),!kr.length)return"[object has no keys]";for(var Pr=kr.length;Pr>0;Pr--){var Rr=kr.slice(0,Pr).join(", ");if(Cr>=Rr.length)return Pr===kr.length?Rr:Rr.length>Cr?Rr.slice(0,Cr)+"...":Rr}return""}class pi{match(Cr){return typeof Cr=="object"&&Cr!==null}coerce(Cr,kr){var Pr,Rr=this.getErrorPropertyFromObject(Cr);return Rr?kr.apply(Rr):{type:this.getType(Cr),value:this.getValue(Cr),stack:(Pr=kr.syntheticException)==null?void 0:Pr.stack,level:this.isSeverityLevel(Cr.level)?Cr.level:"error",synthetic:!0}}getType(Cr){return q(Cr)?Cr.constructor.name:"Error"}getValue(Cr){if("name"in Cr&&typeof Cr.name=="string"){var kr="'"+Cr.name+"' captured as exception";return"message"in Cr&&typeof Cr.message=="string"&&(kr+=" with message: '"+Cr.message+"'"),kr}if("message"in Cr&&typeof Cr.message=="string")return Cr.message;var Pr=this.getObjectClassName(Cr);return(Pr&&Pr!=="Object"?"'"+Pr+"'":"Object")+" captured as exception with keys: "+fi(Cr)}isSeverityLevel(Cr){return F(Cr)&&!A(Cr)&&ci.indexOf(Cr)>=0}getErrorPropertyFromObject(Cr){for(var kr in Cr)if({}.hasOwnProperty.call(Cr,kr)){var Pr=Cr[kr];if(Yt(Pr))return Pr}}getObjectClassName(Cr){try{var kr=Object.getPrototypeOf(Cr);return kr?kr.constructor.name:void 0}catch{return}}}class _i{match(Cr){return q(Cr)}coerce(Cr,kr){var Pr,Rr=Cr.constructor.name;return{type:Rr,value:Rr+" captured as exception with keys: "+fi(Cr),stack:(Pr=kr.syntheticException)==null?void 0:Pr.stack,synthetic:!0}}}class gi{match(Cr){return B(Cr)}coerce(Cr,kr){var Pr;return{type:"Error",value:"Primitive value captured as exception: "+String(Cr),stack:(Pr=kr.syntheticException)==null?void 0:Pr.stack,synthetic:!0}}}class mi{match(Cr){return H(Cr,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection(Cr)}isCustomEventWrappingRejection(Cr){if(!q(Cr))return!1;try{var kr=Cr.detail;return kr!=null&&typeof kr=="object"&&"reason"in kr}catch{return!1}}coerce(Cr,kr){var Pr,Rr=this.getUnhandledRejectionReason(Cr);return B(Rr)?{type:"UnhandledRejection",value:"Non-Error promise rejection captured with value: "+String(Rr),stack:(Pr=kr.syntheticException)==null?void 0:Pr.stack,synthetic:!0}:kr.apply(Rr)}getUnhandledRejectionReason(Cr){try{if("reason"in Cr)return Cr.reason;if("detail"in Cr&&Cr.detail!=null&&typeof Cr.detail=="object"&&"reason"in Cr.detail)return Cr.detail.reason}catch{}return Cr}}var bi=function($,Cr){var{debugEnabled:kr}=Cr===void 0?{}:Cr,Pr={C(Rr){if(t$a&&(v$1.DEBUG||h$3.POSTHOG_DEBUG||kr)&&!C(t$a.console)&&t$a.console){for(var Ir=("__rrweb_original__"in t$a.console[Rr])?t$a.console[Rr].__rrweb_original__:t$a.console[Rr],Fr=arguments.length,Lr=new Array(Fr>1?Fr-1:0),qr=1;Fr>qr;qr++)Lr[qr-1]=arguments[qr];Ir($,...Lr)}},info(){for(var Rr=arguments.length,Ir=new Array(Rr),Fr=0;Rr>Fr;Fr++)Ir[Fr]=arguments[Fr];Pr.C("log",...Ir)},warn(){for(var Rr=arguments.length,Ir=new Array(Rr),Fr=0;Rr>Fr;Fr++)Ir[Fr]=arguments[Fr];Pr.C("warn",...Ir)},error(){for(var Rr=arguments.length,Ir=new Array(Rr),Fr=0;Rr>Fr;Fr++)Ir[Fr]=arguments[Fr];Pr.C("error",...Ir)},critical(){for(var Rr=arguments.length,Ir=new Array(Rr),Fr=0;Rr>Fr;Fr++)Ir[Fr]=arguments[Fr];console.error($,...Ir)},uninitializedWarning(Rr){Pr.error("You must initialize PostHog before calling "+Rr)},createLogger:(Rr,Ir)=>bi($+" "+Rr,Ir)};return Pr},yi=bi("[PostHog.js]"),wi=yi.createLogger,Ei=wi("[ExternalScriptsLoader]"),Si=($,Cr,kr)=>{if($.config.disable_external_dependency_loading)return Ei.warn(Cr+" was requested but loading of external scripts is disabled."),kr("Loading of external scripts is disabled");var Pr=r$c==null?void 0:r$c.querySelectorAll("script");if(Pr){for(var Rr,Ir=function(){if(Pr[Fr].src===Cr){var qr=Pr[Fr];return qr.__posthog_loading_callback_fired?{v:kr()}:(qr.addEventListener("load",(fa=>{qr.__posthog_loading_callback_fired=!0,kr(void 0,fa)})),qr.onerror=fa=>kr(fa),{v:void 0})}},Fr=0;Pr.length>Fr;Fr++)if(Rr=Ir())return Rr.v}var Lr=()=>{if(!r$c)return kr("document not found");var qr=r$c.createElement("script");if(qr.type="text/javascript",qr.crossOrigin="anonymous",qr.src=Cr,qr.onload=ga=>{qr.__posthog_loading_callback_fired=!0,kr(void 0,ga)},qr.onerror=ga=>kr(ga),$.config.prepare_external_dependency_script&&(qr=$.config.prepare_external_dependency_script(qr)),!qr)return kr("prepare_external_dependency_script returned null");if($.config.external_scripts_inject_target==="head")r$c.head.appendChild(qr);else{var fa,pa=r$c.querySelectorAll("body > script");pa.length>0?(fa=pa[0].parentNode)==null||fa.insertBefore(qr,pa[0]):r$c.body.appendChild(qr)}};r$c!=null&&r$c.body?Lr():r$c==null||r$c.addEventListener("DOMContentLoaded",Lr)};h$3.__PosthogExtensions__=h$3.__PosthogExtensions__||{},h$3.__PosthogExtensions__.loadExternalDependency=($,Cr,kr)=>{if(Cr!=="remote-config"){var Pr;if($.config.__preview_external_dependency_versioned_paths)Pr=$.requestRouter.endpointFor("assets","/static/"+$.version+"/"+Cr+".js");else{var Rr="/static/"+Cr+".js?v="+$.version;if(Cr==="toolbar"){var Ir=3e5;Rr=Rr+"&t="+Math.floor(Date.now()/Ir)*Ir}Pr=$.requestRouter.endpointFor("assets",Rr)}Si($,Pr,kr)}else{var Fr=$.requestRouter.endpointFor("assets","/array/"+$.config.token+"/config.js");Si($,Fr,kr)}},h$3.__PosthogExtensions__.loadSiteApp=($,Cr,kr)=>{var Pr=$.requestRouter.endpointFor("api",Cr);Si($,Pr,kr)};var xi="$people_distinct_id",Ti="$device_id",$i="__alias",Ri="__timers",ki="$autocapture_disabled_server_side",Pi="$heatmaps_enabled_server_side",Oi="$exception_capture_enabled_server_side",Ii="$error_tracking_suppression_rules",Ci="$error_tracking_capture_extension_exceptions",Fi="$web_vitals_enabled_server_side",Ai="$dead_clicks_enabled_server_side",Mi="$product_tours_enabled_server_side",Di="$web_vitals_allowed_metrics",Li="$session_recording_remote_config",Ui="$sesid",Ni="$session_is_sampled",ji="$enabled_feature_flags",zi="$early_access_features",Bi="$feature_flag_details",Hi="$feature_flag_payloads",qi="$override_feature_flag_payloads",Vi="$stored_person_properties",Wi="$stored_group_properties",Gi="$surveys",Yi="ph_product_tours",Ji="$flag_call_reported",Ki="$flag_call_reported_session_id",Xi="$feature_flag_errors",Qi="$feature_flag_evaluated_at",Zi="$user_state",te="$client_session_props",ie="$capture_rate_limit",ee="$initial_campaign_params",re$1="$initial_referrer_info",se="$initial_person_info",ne="$epp",oe="__POSTHOG_TOOLBAR__",ae="$posthog_cookieless",le=[xi,$i,"__cmpns",Ri,"$session_recording_enabled_server_side",Pi,Ui,ji,Ii,Zi,zi,Bi,Wi,Vi,Gi,Ji,Ki,Xi,Qi,te,ie,ee,re$1,ne,se,Yi,"$product_tours_activated",Mi,Li,qi],ue="PostHog loadExternalDependency extension not found.",he="on_reject",de="always",ve$1="anonymous",ce="identified",fe="identified_only",pe="visibilitychange",_e="beforeunload",ge="$pageview",me="$pageleave",be="$identify",ye="$groupidentify";function we$1($,Cr){k($)&&$.forEach(Cr)}function Ee($,Cr){if(!D($))if(k($))$.forEach(Cr);else if(j$1($))$.forEach(((Pr,Rr)=>Cr(Pr,Rr)));else for(var kr in $)T.call($,kr)&&Cr($[kr],kr)}var Se=function($){for(var Cr=arguments.length,kr=new Array(Cr>1?Cr-1:0),Pr=1;Cr>Pr;Pr++)kr[Pr-1]=arguments[Pr];for(var Rr of kr)for(var Ir in Rr)Rr[Ir]!==void 0&&($[Ir]=Rr[Ir]);return $};function xe($){for(var Cr=Object.keys($),kr=Cr.length,Pr=new Array(kr);kr--;)Pr[kr]=[Cr[kr],$[Cr[kr]]];return Pr}var Te=function($){try{return $()}catch{return}},$e=function($){return function(){try{for(var Cr=arguments.length,kr=new Array(Cr),Pr=0;Cr>Pr;Pr++)kr[Pr]=arguments[Pr];return $.apply(this,kr)}catch(Rr){yi.critical("Implementation error. Please turn on debug mode and open a ticket on https://app.posthog.com/home#panel=support%3Asupport%3A."),yi.critical(Rr)}}},Re=function($){var Cr={};return Ee($,(function(kr,Pr){(F(kr)&&kr.length>0||L(kr))&&(Cr[Pr]=kr)})),Cr},ke=["herokuapp.com","vercel.app","netlify.app"];function Pe($){var Cr=$==null?void 0:$.hostname;if(!F(Cr))return!1;var kr=Cr.split(".").slice(-2).join(".");for(var Pr of ke)if(kr===Pr)return!1;return!0}function Oe($,Cr,kr,Pr){var{capture:Rr=!1,passive:Ir=!0}=Pr??{};$==null||$.addEventListener(Cr,kr,{capture:Rr,passive:Ir})}function Ie($){return $.name==="ph_toolbar_internal"}Math.trunc||(Math.trunc=function($){return 0>$?Math.ceil($):Math.floor($)}),Number.isInteger||(Number.isInteger=function($){return L($)&&isFinite($)&&Math.floor($)===$});class Ce{constructor(Cr){if(this.bytes=Cr,Cr.length!==16)throw new TypeError("not 128-bit length")}static fromFieldsV7(Cr,kr,Pr,Rr){if(!Number.isInteger(Cr)||!Number.isInteger(kr)||!Number.isInteger(Pr)||!Number.isInteger(Rr)||0>Cr||0>kr||0>Pr||0>Rr||Cr>0xffffffffffff||kr>4095||Pr>1073741823||Rr>4294967295)throw new RangeError("invalid field value");var Ir=new Uint8Array(16);return Ir[0]=Cr/Math.pow(2,40),Ir[1]=Cr/Math.pow(2,32),Ir[2]=Cr/Math.pow(2,24),Ir[3]=Cr/Math.pow(2,16),Ir[4]=Cr/Math.pow(2,8),Ir[5]=Cr,Ir[6]=112|kr>>>8,Ir[7]=kr,Ir[8]=128|Pr>>>24,Ir[9]=Pr>>>16,Ir[10]=Pr>>>8,Ir[11]=Pr,Ir[12]=Rr>>>24,Ir[13]=Rr>>>16,Ir[14]=Rr>>>8,Ir[15]=Rr,new Ce(Ir)}toString(){for(var Cr="",kr=0;this.bytes.length>kr;kr++)Cr=Cr+(this.bytes[kr]>>>4).toString(16)+(15&this.bytes[kr]).toString(16),kr!==3&&kr!==5&&kr!==7&&kr!==9||(Cr+="-");if(Cr.length!==36)throw new Error("Invalid UUIDv7 was generated");return Cr}clone(){return new Ce(this.bytes.slice(0))}equals(Cr){return this.compareTo(Cr)===0}compareTo(Cr){for(var kr=0;16>kr;kr++){var Pr=this.bytes[kr]-Cr.bytes[kr];if(Pr!==0)return Math.sign(Pr)}return 0}}class Fe{constructor(){this.I=0,this.S=0,this.k=new De}generate(){var Cr=this.generateOrAbort();if(C(Cr)){this.I=0;var kr=this.generateOrAbort();if(C(kr))throw new Error("Could not generate UUID after timestamp reset");return kr}return Cr}generateOrAbort(){var Cr=Date.now();if(Cr>this.I)this.I=Cr,this.A();else{if(this.I>=Cr+1e4)return;this.S++,this.S>4398046511103&&(this.I++,this.A())}return Ce.fromFieldsV7(this.I,Math.trunc(this.S/Math.pow(2,30)),this.S&Math.pow(2,30)-1,this.k.nextUint32())}A(){this.S=1024*this.k.nextUint32()+(1023&this.k.nextUint32())}}var Ae,Me=$=>{if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");for(var Cr=0;$.length>Cr;Cr++)$[Cr]=65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random());return $};t$a&&!C(t$a.crypto)&&crypto.getRandomValues&&(Me=$=>crypto.getRandomValues($));class De{constructor(){this.T=new Uint32Array(8),this.N=1/0}nextUint32(){return this.T.length>this.N||(Me(this.T),this.N=0),this.T[this.N++]}}var Le=()=>Ue().toString(),Ue=()=>(Ae||(Ae=new Fe)).generate(),Ne="",je=/[a-z0-9][a-z0-9-]+\.[a-z]{2,}$/i,ze={Ut:()=>!!r$c,Yt($){yi.error("cookieStore error: "+$)},Gt($){if(r$c){try{for(var Cr=$+"=",kr=r$c.cookie.split(";").filter((Ir=>Ir.length)),Pr=0;kr.length>Pr;Pr++){for(var Rr=kr[Pr];Rr.charAt(0)==" ";)Rr=Rr.substring(1,Rr.length);if(Rr.indexOf(Cr)===0)return decodeURIComponent(Rr.substring(Cr.length,Rr.length))}}catch{}return null}},Wt($){var Cr;try{Cr=JSON.parse(ze.Gt($))||{}}catch{}return Cr},Xt($,Cr,kr,Pr,Rr){if(r$c)try{var Ir="",Fr="",Lr=(function(pa,ga){if(ga){var xa=(function(ba,Aa){if(Aa===void 0&&(Aa=r$c),Ne)return Ne;if(!Aa||["localhost","127.0.0.1"].includes(ba))return"";for(var ka=ba.split("."),Ea=Math.min(ka.length,8),Sa="dmn_chk_"+Le();!Ne&&Ea--;){var Ca=ka.slice(Ea).join("."),Ta=Sa+"=1;domain=."+Ca+";path=/";Aa.cookie=Ta+";max-age=3",Aa.cookie.includes(Sa)&&(Aa.cookie=Ta+";max-age=0",Ne=Ca)}return Ne})(pa);if(!xa){var ya=(ba=>{var Aa=ba.match(je);return Aa?Aa[0]:""})(pa);ya!==xa&&yi.info("Warning: cookie subdomain discovery mismatch",ya,xa),xa=ya}return xa?"; domain=."+xa:""}return""})(r$c.location.hostname,Pr);if(kr){var qr=new Date;qr.setTime(qr.getTime()+864e5*kr),Ir="; expires="+qr.toUTCString()}Rr&&(Fr="; secure");var fa=$+"="+encodeURIComponent(JSON.stringify(Cr))+Ir+"; SameSite=Lax; path=/"+Lr+Fr;return fa.length>3686.4&&yi.warn("cookieStore warning: large cookie, len="+fa.length),r$c.cookie=fa,fa}catch{return}},Jt($,Cr){if(r$c!=null&&r$c.cookie)try{ze.Xt($,"",-1,Cr)}catch{return}}},Be=null,He={Ut(){if(!M$1(Be))return Be;var $=!0;if(C(t$a))$=!1;else try{var Cr="__mplssupport__";He.Xt(Cr,"xyz"),He.Gt(Cr)!=='"xyz"'&&($=!1),He.Jt(Cr)}catch{$=!1}return $||yi.error("localStorage unsupported; falling back to cookie store"),Be=$,$},Yt($){yi.error("localStorage error: "+$)},Gt($){try{return t$a==null?void 0:t$a.localStorage.getItem($)}catch(Cr){He.Yt(Cr)}return null},Wt($){try{return JSON.parse(He.Gt($))||{}}catch{}return null},Xt($,Cr){try{t$a==null||t$a.localStorage.setItem($,JSON.stringify(Cr))}catch(kr){He.Yt(kr)}},Jt($){try{t$a==null||t$a.localStorage.removeItem($)}catch(Cr){He.Yt(Cr)}}},qe=[Ti,"distinct_id",Ui,Ni,ne,se,Zi],Ve={},We={Ut:()=>!0,Yt($){yi.error("memoryStorage error: "+$)},Gt:$=>Ve[$]||null,Wt:$=>Ve[$]||null,Xt($,Cr){Ve[$]=Cr},Jt($){delete Ve[$]}},Ge=null,Ye={Ut(){if(!M$1(Ge))return Ge;if(Ge=!0,C(t$a))Ge=!1;else try{var $="__support__";Ye.Xt($,"xyz"),Ye.Gt($)!=='"xyz"'&&(Ge=!1),Ye.Jt($)}catch{Ge=!1}return Ge},Yt($){yi.error("sessionStorage error: ",$)},Gt($){try{return t$a==null?void 0:t$a.sessionStorage.getItem($)}catch(Cr){Ye.Yt(Cr)}return null},Wt($){try{return JSON.parse(Ye.Gt($))||null}catch{}return null},Xt($,Cr){try{t$a==null||t$a.sessionStorage.setItem($,JSON.stringify(Cr))}catch(kr){Ye.Yt(kr)}},Jt($){try{t$a==null||t$a.sessionStorage.removeItem($)}catch(Cr){Ye.Yt(Cr)}}};class Je{constructor(Cr){this._instance=Cr}get Rt(){return this._instance.config}get consent(){return this.Kt()?0:this.Qt}isOptedOut(){return this.Rt.cookieless_mode===de||this.isRejected()||this.consent===-1&&this.Rt.cookieless_mode===he}isOptedIn(){return!this.isOptedOut()}isExplicitlyOptedOut(){return this.consent===0}isRejected(){return this.consent===0||this.consent===-1&&this.Rt.opt_out_capturing_by_default}optInOut(Cr){this.ti.Xt(this.ei,Cr?1:0,this.Rt.cookie_expiration,this.Rt.cross_subdomain_cookie,this.Rt.secure_cookie)}reset(){this.ti.Jt(this.ei,this.Rt.cross_subdomain_cookie)}get ei(){var{token:Cr,opt_out_capturing_cookie_prefix:kr,consent_persistence_name:Pr}=this._instance.config;return Pr||(kr?kr+Cr:"__ph_opt_in_out_"+Cr)}get Qt(){var Cr=this.ti.Gt(this.ei);return W(Cr)?1:w$1(G,Cr)?0:-1}get ti(){var Cr=this.Rt.opt_out_capturing_persistence_type,kr=Cr==="localStorage"?He:ze;if(!this.ii||this.ii!==kr){this.ii=kr;var Pr=Cr==="localStorage"?ze:He;Pr.Gt(this.ei)&&(this.ii.Gt(this.ei)||this.optInOut(W(Pr.Gt(this.ei))),Pr.Jt(this.ei,this.Rt.cross_subdomain_cookie))}return this.ii}Kt(){return!!this.Rt.respect_dnt&&[e$n==null?void 0:e$n.doNotTrack,e$n==null?void 0:e$n.msDoNotTrack,h$3.doNotTrack].some((Cr=>W(Cr)))}}var Ke=wi("[Dead Clicks]"),Xe=()=>!0,Qe=$=>{var Cr,kr=!((Cr=$.instance.persistence)==null||!Cr.get_property(Ai)),Pr=$.instance.config.capture_dead_clicks;return N$1(Pr)?Pr:!!O(Pr)||kr};class Ze{get lazyLoadedDeadClicksAutocapture(){return this.ri}constructor(Cr,kr,Pr){this.instance=Cr,this.isEnabled=kr,this.onCapture=Pr,this.startIfEnabledOrStop()}onRemoteConfig(Cr){"captureDeadClicks"in Cr&&(this.instance.persistence&&this.instance.persistence.register({[Ai]:Cr.captureDeadClicks}),this.startIfEnabledOrStop())}startIfEnabledOrStop(){this.isEnabled(this)?this.ni((()=>{this.si()})):this.stop()}ni(Cr){var kr,Pr;(kr=h$3.__PosthogExtensions__)!=null&&kr.initDeadClicksAutocapture&&Cr(),(Pr=h$3.__PosthogExtensions__)==null||Pr.loadExternalDependency==null||Pr.loadExternalDependency(this.instance,"dead-clicks-autocapture",(Rr=>{Rr?Ke.error("failed to load script",Rr):Cr()}))}si(){var Cr;if(r$c){if(!this.ri&&(Cr=h$3.__PosthogExtensions__)!=null&&Cr.initDeadClicksAutocapture){var kr=O(this.instance.config.capture_dead_clicks)?this.instance.config.capture_dead_clicks:{};kr.__onCapture=this.onCapture,this.ri=h$3.__PosthogExtensions__.initDeadClicksAutocapture(this.instance,kr),this.ri.start(r$c),Ke.info("starting...")}}else Ke.error("`document` not found. Cannot start.")}stop(){this.ri&&(this.ri.stop(),this.ri=void 0,Ke.info("stopping..."))}}var tr=wi("[SegmentIntegration]"),ir="posthog-js";function er($,Cr){var{organization:kr,projectId:Pr,prefix:Rr,severityAllowList:Ir=["error"],sendExceptionsToPostHog:Fr=!0}=Cr===void 0?{}:Cr;return Lr=>{var qr,fa,pa,ga,xa;if(Ir!=="*"&&!Ir.includes(Lr.level)||!$.__loaded)return Lr;Lr.tags||(Lr.tags={});var ya=$.requestRouter.endpointFor("ui","/project/"+$.config.token+"/person/"+$.get_distinct_id());Lr.tags["PostHog Person URL"]=ya,$.sessionRecordingStarted()&&(Lr.tags["PostHog Recording URL"]=$.get_session_replay_url({withTimestamp:!0}));var ba,Aa=((qr=Lr.exception)==null?void 0:qr.values)||[],ka=Aa.map((Sa=>p$3({},Sa,{stacktrace:Sa.stacktrace?p$3({},Sa.stacktrace,{type:"raw",frames:(Sa.stacktrace.frames||[]).map((Ca=>p$3({},Ca,{platform:"web:javascript"})))}):void 0}))),Ea={$exception_message:((fa=Aa[0])==null?void 0:fa.value)||Lr.message,$exception_type:(pa=Aa[0])==null?void 0:pa.type,$exception_level:Lr.level,$exception_list:ka,$sentry_event_id:Lr.event_id,$sentry_exception:Lr.exception,$sentry_exception_message:((ga=Aa[0])==null?void 0:ga.value)||Lr.message,$sentry_exception_type:(xa=Aa[0])==null?void 0:xa.type,$sentry_tags:Lr.tags};return kr&&Pr&&(Ea.$sentry_url=(Rr||"https://sentry.io/organizations/")+kr+"/issues/?project="+Pr+"&query="+Lr.event_id),Fr&&((ba=$.exceptions)==null||ba.sendExceptionEvent(Ea)),Lr}}class rr{constructor(Cr,kr,Pr,Rr,Ir,Fr){this.name=ir,this.setupOnce=function(Lr){Lr(er(Cr,{organization:kr,projectId:Pr,prefix:Rr,severityAllowList:Ir,sendExceptionsToPostHog:Fr==null||Fr}))}}}class sr{constructor(Cr){this.oi=(kr,Pr,Rr)=>{Rr&&(Rr.noSessionId||Rr.activityTimeout||Rr.sessionPastMaximumLength)&&(yi.info("[PageViewManager] Session rotated, clearing pageview state",{sessionId:kr,changeReason:Rr}),this.ai=void 0,this._instance.scrollManager.resetContext())},this._instance=Cr,this.li()}li(){var Cr;this.ui=(Cr=this._instance.sessionManager)==null?void 0:Cr.onSessionId(this.oi)}destroy(){var Cr;(Cr=this.ui)==null||Cr.call(this),this.ui=void 0}doPageView(Cr,kr){var Pr,Rr=this.hi(Cr,kr);return this.ai={pathname:(Pr=t$a==null?void 0:t$a.location.pathname)!==null&&Pr!==void 0?Pr:"",pageViewId:kr,timestamp:Cr},this._instance.scrollManager.resetContext(),Rr}doPageLeave(Cr){var kr;return this.hi(Cr,(kr=this.ai)==null?void 0:kr.pageViewId)}doEvent(){var Cr;return{$pageview_id:(Cr=this.ai)==null?void 0:Cr.pageViewId}}hi(Cr,kr){var Pr=this.ai;if(!Pr)return{$pageview_id:kr};var Rr={$pageview_id:kr,$prev_pageview_id:Pr.pageViewId},Ir=this._instance.scrollManager.getContext();if(Ir&&!this._instance.config.disable_scroll_properties){var{maxScrollHeight:Fr,lastScrollY:Lr,maxScrollY:qr,maxContentHeight:fa,lastContentY:pa,maxContentY:ga}=Ir;if(!(C(Fr)||C(Lr)||C(qr)||C(fa)||C(pa)||C(ga))){Fr=Math.ceil(Fr),Lr=Math.ceil(Lr),qr=Math.ceil(qr),fa=Math.ceil(fa),pa=Math.ceil(pa),ga=Math.ceil(ga);var xa=Fr>1?Y(Lr/Fr,0,1,yi):1,ya=Fr>1?Y(qr/Fr,0,1,yi):1,ba=fa>1?Y(pa/fa,0,1,yi):1,Aa=fa>1?Y(ga/fa,0,1,yi):1;Rr=Se(Rr,{$prev_pageview_last_scroll:Lr,$prev_pageview_last_scroll_percentage:xa,$prev_pageview_max_scroll:qr,$prev_pageview_max_scroll_percentage:ya,$prev_pageview_last_content:pa,$prev_pageview_last_content_percentage:ba,$prev_pageview_max_content:ga,$prev_pageview_max_content_percentage:Aa})}}return Pr.pathname&&(Rr.$prev_pageview_pathname=Pr.pathname),Pr.timestamp&&(Rr.$prev_pageview_duration=(Cr.getTime()-Pr.timestamp.getTime())/1e3),Rr}}var nr=$=>{var Cr=r$c==null?void 0:r$c.createElement("a");return C(Cr)?null:(Cr.href=$,Cr)},or=function($,Cr){for(var kr,Pr=(($.split("#")[0]||"").split(/\?(.*)/)[1]||"").replace(/^\?+/g,"").split("&"),Rr=0;Pr.length>Rr;Rr++){var Ir=Pr[Rr].split("=");if(Ir[0]===Cr){kr=Ir;break}}if(!k(kr)||2>kr.length)return"";var Fr=kr[1];try{Fr=decodeURIComponent(Fr)}catch{yi.error("Skipping decoding for malformed query param: "+Fr)}return Fr.replace(/\+/g," ")},ar=function($,Cr,kr){if(!$||!Cr||!Cr.length)return $;for(var Pr=$.split("#"),Rr=Pr[1],Ir=(Pr[0]||"").split("?"),Fr=Ir[1],Lr=Ir[0],qr=(Fr||"").split("&"),fa=[],pa=0;qr.length>pa;pa++){var ga=qr[pa].split("=");k(ga)&&(Cr.includes(ga[0])?fa.push(ga[0]+"="+kr):fa.push(qr[pa]))}var xa=Lr;return Fr!=null&&(xa+="?"+fa.join("&")),Rr!=null&&(xa+="#"+Rr),xa},lr=function($,Cr){var kr=$.match(new RegExp(Cr+"=([^&]*)"));return kr?kr[1]:null},ur="https?://(.*)",hr=["gclid","gclsrc","dclid","gbraid","wbraid","fbclid","msclkid","twclid","li_fat_id","igshid","ttclid","rdt_cid","epik","qclid","sccid","irclid","_kx"],dr=["utm_source","utm_medium","utm_campaign","utm_content","utm_term","gad_source","mc_cid",...hr],vr="<masked>",cr=["li_fat_id"];function fr$1($,Cr,kr){if(!r$c)return{};var Pr,Rr=Cr?[...hr,...kr||[]]:[],Ir=pr(ar(r$c.URL,Rr,vr),$),Fr=(Pr={},Ee(cr,(function(Lr){var qr=ze.Gt(Lr);Pr[Lr]=qr||null})),Pr);return Se(Fr,Ir)}function pr($,Cr){var kr=dr.concat(Cr||[]),Pr={};return Ee(kr,(function(Rr){var Ir=or($,Rr);Pr[Rr]=Ir||null})),Pr}function _r($){var Cr=(function(Ir){return Ir?Ir.search(ur+"google.([^/?]*)")===0?"google":Ir.search(ur+"bing.com")===0?"bing":Ir.search(ur+"yahoo.com")===0?"yahoo":Ir.search(ur+"duckduckgo.com")===0?"duckduckgo":null:null})($),kr=Cr!="yahoo"?"q":"p",Pr={};if(!M$1(Cr)){Pr.$search_engine=Cr;var Rr=r$c?or(r$c.referrer,kr):"";Rr.length&&(Pr.ph_keyword=Rr)}return Pr}function gr(){return navigator.language||navigator.userLanguage}var mr="$direct";function br(){return(r$c==null?void 0:r$c.referrer)||mr}function yr($,Cr){var kr=$?[...hr,...Cr||[]]:[],Pr=s$d==null?void 0:s$d.href.substring(0,1e3);return{r:br().substring(0,1e3),u:Pr?ar(Pr,kr,vr):void 0}}function wr($){var Cr,{r:kr,u:Pr}=$,Rr={$referrer:kr,$referring_domain:kr==null?void 0:kr==mr?mr:(Cr=nr(kr))==null?void 0:Cr.host};if(Pr){Rr.$current_url=Pr;var Ir=nr(Pr);Rr.$host=Ir==null?void 0:Ir.host,Rr.$pathname=Ir==null?void 0:Ir.pathname;var Fr=pr(Pr);Se(Rr,Fr)}if(kr){var Lr=_r(kr);Se(Rr,Lr)}return Rr}function Er(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return}}function Sr(){try{return new Date().getTimezoneOffset()}catch{return}}var xr=["cookie","localstorage","localstorage+cookie","sessionstorage","memory"];class Tr{constructor(Cr,kr){this.Rt=Cr,this.props={},this.ci=!1,this.di=(Pr=>{var Rr="";return Pr.token&&(Rr=Pr.token.replace(/\+/g,"PL").replace(/\//g,"SL").replace(/=/g,"EQ")),Pr.persistence_name?"ph_"+Pr.persistence_name:"ph_"+Rr+"_posthog"})(Cr),this.ti=this.vi(Cr),this.load(),Cr.debug&&yi.info("Persistence loaded",Cr.persistence,p$3({},this.props)),this.update_config(Cr,Cr,kr),this.save()}isDisabled(){return!!this.fi}vi(Cr){xr.indexOf(Cr.persistence.toLowerCase())===-1&&(yi.critical("Unknown persistence type "+Cr.persistence+"; falling back to localStorage+cookie"),Cr.persistence="localStorage+cookie");var kr=(function(Rr){Rr===void 0&&(Rr=[]);var Ir=[...qe,...Rr];return p$3({},He,{Wt(Fr){try{var Lr={};try{Lr=ze.Wt(Fr)||{}}catch{}var qr=Se(Lr,JSON.parse(He.Gt(Fr)||"{}"));return He.Xt(Fr,qr),qr}catch{}return null},Xt(Fr,Lr,qr,fa,pa,ga){try{He.Xt(Fr,Lr,void 0,void 0,ga);var xa={};Ir.forEach((ya=>{Lr[ya]&&(xa[ya]=Lr[ya])})),Object.keys(xa).length&&ze.Xt(Fr,xa,qr,fa,pa,ga)}catch(ya){He.Yt(ya)}},Jt(Fr,Lr){try{t$a==null||t$a.localStorage.removeItem(Fr),ze.Jt(Fr,Lr)}catch(qr){He.Yt(qr)}}})})(Cr.cookie_persisted_properties||[]),Pr=Cr.persistence.toLowerCase();return Pr==="localstorage"&&He.Ut()?He:Pr==="localstorage+cookie"&&kr.Ut()?kr:Pr==="sessionstorage"&&Ye.Ut()?Ye:Pr==="memory"?We:Pr==="cookie"?ze:kr.Ut()?kr:ze}pi(Cr){var kr=Cr??this.Rt.feature_flag_cache_ttl_ms;if(!kr||0>=kr)return!1;var Pr=this.props[Qi];return!Pr||typeof Pr!="number"||Date.now()-Pr>kr}properties(){var Cr={};return Ee(this.props,((kr,Pr)=>{if(Pr===ji&&O(kr)){if(!this.pi())for(var Rr=Object.keys(kr),Ir=0;Rr.length>Ir;Ir++)Cr["$feature/"+Rr[Ir]]=kr[Rr[Ir]]}else le.indexOf(Pr)===-1&&(Cr[Pr]=kr)})),Cr}load(){if(!this.fi){var Cr=this.ti.Wt(this.di);Cr&&(this.props=Se({},Cr))}}save(){this.fi||this.ti.Xt(this.di,this.props,this.gi,this.mi,this.yi,this.Rt.debug)}remove(){this.ti.Jt(this.di,!1),this.ti.Jt(this.di,!0)}clear(){this.remove(),this.props={}}register_once(Cr,kr,Pr){if(O(Cr)){C(kr)&&(kr="None"),this.gi=C(Pr)?this.bi:Pr;var Rr=!1;if(Ee(Cr,((Ir,Fr)=>{this.props.hasOwnProperty(Fr)&&this.props[Fr]!==kr||(this.props[Fr]=Ir,Rr=!0)})),Rr)return this.save(),!0}return!1}register(Cr,kr){if(O(Cr)){this.gi=C(kr)?this.bi:kr;var Pr=!1;if(Ee(Cr,((Rr,Ir)=>{Cr.hasOwnProperty(Ir)&&this.props[Ir]!==Rr&&(this.props[Ir]=Rr,Pr=!0)})),Pr)return this.save(),!0}return!1}unregister(Cr){Cr in this.props&&(delete this.props[Cr],this.save())}update_campaign_params(){if(!this.ci){var Cr=fr$1(this.Rt.custom_campaign_params,this.Rt.mask_personal_data_properties,this.Rt.custom_personal_data_properties);I$1(Re(Cr))||this.register(Cr),this.ci=!0}}update_search_keyword(){var Cr;this.register((Cr=r$c==null?void 0:r$c.referrer)?_r(Cr):{})}update_referrer_info(){var Cr;this.register_once({$referrer:br(),$referring_domain:r$c!=null&&r$c.referrer&&((Cr=nr(r$c.referrer))==null?void 0:Cr.host)||mr},void 0)}set_initial_person_info(){this.props[ee]||this.props[re$1]||this.register_once({[se]:yr(this.Rt.mask_personal_data_properties,this.Rt.custom_personal_data_properties)},void 0)}get_initial_props(){var Cr={};Ee([re$1,ee],(Fr=>{var Lr=this.props[Fr];Lr&&Ee(Lr,(function(qr,fa){Cr["$initial_"+S(fa)]=qr}))}));var kr,Pr,Rr=this.props[se];if(Rr){var Ir=(kr=wr(Rr),Pr={},Ee(kr,(function(Fr,Lr){Pr["$initial_"+S(Lr)]=Fr})),Pr);Se(Cr,Ir)}return Cr}safe_merge(Cr){return Ee(this.props,(function(kr,Pr){Pr in Cr||(Cr[Pr]=kr)})),Cr}update_config(Cr,kr,Pr){if(this.bi=this.gi=Cr.cookie_expiration,this.set_disabled(Cr.disable_persistence||!!Pr),this.set_cross_subdomain(Cr.cross_subdomain_cookie),this.set_secure(Cr.secure_cookie),Cr.persistence!==kr.persistence||!((Fr,Lr)=>{if(Fr.length!==Lr.length)return!1;var qr=[...Fr].sort(),fa=[...Lr].sort();return qr.every(((pa,ga)=>pa===fa[ga]))})(Cr.cookie_persisted_properties||[],kr.cookie_persisted_properties||[])){var Rr=this.vi(Cr),Ir=this.props;this.clear(),this.ti=Rr,this.props=Ir,this.save()}}set_disabled(Cr){this.fi=Cr,this.fi?this.remove():this.save()}set_cross_subdomain(Cr){Cr!==this.mi&&(this.mi=Cr,this.remove(),this.save())}set_secure(Cr){Cr!==this.yi&&(this.yi=Cr,this.remove(),this.save())}set_event_timer(Cr,kr){var Pr=this.props[Ri]||{};Pr[Cr]=kr,this.props[Ri]=Pr,this.save()}remove_event_timer(Cr){var kr=(this.props[Ri]||{})[Cr];return C(kr)||(delete this.props[Ri][Cr],this.save()),kr}get_property(Cr){return this.props[Cr]}set_property(Cr,kr){this.props[Cr]=kr,this.save()}}var $r={Activation:"events",Cancellation:"cancelEvents"},Or={Popover:"popover",API:"api",Widget:"widget"},Ar={SHOWN:"survey shown",DISMISSED:"survey dismissed",SENT:"survey sent"},Mr={SURVEY_ID:"$survey_id",SURVEY_ITERATION:"$survey_iteration",SURVEY_LAST_SEEN_DATE:"$survey_last_seen_date"},Dr={Popover:"popover",Inline:"inline"},Ur={SHOWN:"product tour shown"},Nr={TOUR_LAST_SEEN_DATE:"$product_tour_last_seen_date",TOUR_TYPE:"$product_tour_type"},jr=wi("[RateLimiter]");class zr{constructor(Cr){this.serverLimits={},this.lastEventRateLimited=!1,this.checkForLimiting=kr=>{var Pr=kr.text;if(Pr&&Pr.length)try{(JSON.parse(Pr).quota_limited||[]).forEach((Rr=>{jr.info((Rr||"events")+" is quota limited."),this.serverLimits[Rr]=new Date().getTime()+6e4}))}catch(Rr){return void jr.warn('could not rate limit - continuing. Error: "'+(Rr==null?void 0:Rr.message)+'"',{text:Pr})}},this.instance=Cr,this.lastEventRateLimited=this.clientRateLimitContext(!0).isRateLimited}get captureEventsPerSecond(){var Cr;return((Cr=this.instance.config.rate_limiting)==null?void 0:Cr.events_per_second)||10}get captureEventsBurstLimit(){var Cr;return Math.max(((Cr=this.instance.config.rate_limiting)==null?void 0:Cr.events_burst_limit)||10*this.captureEventsPerSecond,this.captureEventsPerSecond)}clientRateLimitContext(Cr){var kr,Pr,Rr;Cr===void 0&&(Cr=!1);var{captureEventsBurstLimit:Ir,captureEventsPerSecond:Fr}=this,Lr=new Date().getTime(),qr=(kr=(Pr=this.instance.persistence)==null?void 0:Pr.get_property(ie))!==null&&kr!==void 0?kr:{tokens:Ir,last:Lr};qr.tokens+=(Lr-qr.last)/1e3*Fr,qr.last=Lr,qr.tokens>Ir&&(qr.tokens=Ir);var fa=1>qr.tokens;return fa||Cr||(qr.tokens=Math.max(0,qr.tokens-1)),!fa||this.lastEventRateLimited||Cr||this.instance.capture("$$client_ingestion_warning",{$$client_ingestion_warning_message:"posthog-js client rate limited. Config is set to "+Fr+" events per second and "+Ir+" events burst limit."},{skip_client_rate_limiting:!0}),this.lastEventRateLimited=fa,(Rr=this.instance.persistence)==null||Rr.set_property(ie,qr),{isRateLimited:fa,remainingTokens:qr.tokens}}isServerRateLimited(Cr){var kr=this.serverLimits[Cr||"events"]||!1;return kr!==!1&&new Date().getTime()<kr}}var Br=wi("[RemoteConfig]");class Hr{constructor(Cr){this._instance=Cr}get remoteConfig(){var Cr;return(Cr=h$3._POSTHOG_REMOTE_CONFIG)==null||(Cr=Cr[this._instance.config.token])==null?void 0:Cr.config}wi(Cr){var kr,Pr;(kr=h$3.__PosthogExtensions__)!=null&&kr.loadExternalDependency?(Pr=h$3.__PosthogExtensions__)==null||Pr.loadExternalDependency==null||Pr.loadExternalDependency(this._instance,"remote-config",(()=>Cr(this.remoteConfig))):Cr()}Ii(Cr){this._instance._send_request({method:"GET",url:this._instance.requestRouter.endpointFor("assets","/array/"+this._instance.config.token+"/config"),callback(kr){Cr(kr.json)}})}load(){try{if(this.remoteConfig)return Br.info("Using preloaded remote config",this.remoteConfig),this.Ci(this.remoteConfig),void this.Si();if(this._instance.ki())return void Br.warn("Remote config is disabled. Falling back to local config.");this.wi((Cr=>{if(!Cr)return Br.info("No config found after loading remote JS config. Falling back to JSON."),void this.Ii((kr=>{this.Ci(kr),this.Si()}));this.Ci(Cr),this.Si()}))}catch(Cr){Br.error("Error loading remote config",Cr)}}stop(){this.xi&&(clearInterval(this.xi),this.xi=void 0)}refresh(){this._instance.ki()||(r$c==null?void 0:r$c.visibilityState)==="hidden"||this._instance.reloadFeatureFlags()}Si(){var Cr;if(!this.xi){var kr=(Cr=this._instance.config.remote_config_refresh_interval_ms)!==null&&Cr!==void 0?Cr:3e5;kr!==0&&(this.xi=setInterval((()=>{this.refresh()}),kr))}}Ci(Cr){var kr;Cr||Br.error("Failed to fetch remote config from PostHog."),this._instance.Ci(Cr??{}),(Cr==null?void 0:Cr.hasFeatureFlags)!==!1&&(this._instance.config.advanced_disable_feature_flags_on_first_load||(kr=this._instance.featureFlags)==null||kr.ensureFlagsLoaded())}}var Vr={GZipJS:"gzip-js",Base64:"base64"},Wr=Uint8Array,Gr=Uint16Array,Yr=Uint32Array,Jr=new Wr([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Kr=new Wr([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Xr=new Wr([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Qr=function($,Cr){for(var kr=new Gr(31),Pr=0;31>Pr;++Pr)kr[Pr]=Cr+=1<<$[Pr-1];var Rr=new Yr(kr[30]);for(Pr=1;30>Pr;++Pr)for(var Ir=kr[Pr];kr[Pr+1]>Ir;++Ir)Rr[Ir]=Ir-kr[Pr]<<5|Pr;return[kr,Rr]},Zr=Qr(Jr,2),ts=Zr[1];Zr[0][28]=258,ts[258]=28;for(var is=Qr(Kr,0)[1],es=new Gr(32768),rs=0;32768>rs;++rs){var ss=(43690&rs)>>>1|(21845&rs)<<1;es[rs]=((65280&(ss=(61680&(ss=(52428&ss)>>>2|(13107&ss)<<2))>>>4|(3855&ss)<<4))>>>8|(255&ss)<<8)>>>1}var ns=function($,Cr,kr){for(var Pr=$.length,Rr=0,Ir=new Gr(Cr);Pr>Rr;++Rr)++Ir[$[Rr]-1];var Fr,Lr=new Gr(Cr);for(Rr=0;Cr>Rr;++Rr)Lr[Rr]=Lr[Rr-1]+Ir[Rr-1]<<1;for(Fr=new Gr(Pr),Rr=0;Pr>Rr;++Rr)Fr[Rr]=es[Lr[$[Rr]-1]++]>>>15-$[Rr];return Fr},os=new Wr(288);for(rs=0;144>rs;++rs)os[rs]=8;for(rs=144;256>rs;++rs)os[rs]=9;for(rs=256;280>rs;++rs)os[rs]=7;for(rs=280;288>rs;++rs)os[rs]=8;var as=new Wr(32);for(rs=0;32>rs;++rs)as[rs]=5;var ls=ns(os,9),us=ns(as,5),hs=function($){return($/8>>0)+(7&$&&1)},ds=function($,Cr,kr){(kr==null||kr>$.length)&&(kr=$.length);var Pr=new($ instanceof Gr?Gr:$ instanceof Yr?Yr:Wr)(kr-Cr);return Pr.set($.subarray(Cr,kr)),Pr},vs=function($,Cr,kr){var Pr=Cr/8>>0;$[Pr]|=kr<<=7&Cr,$[Pr+1]|=kr>>>8},cs=function($,Cr,kr){var Pr=Cr/8>>0;$[Pr]|=kr<<=7&Cr,$[Pr+1]|=kr>>>8,$[Pr+2]|=kr>>>16},fs=function($,Cr){for(var kr=[],Pr=0;$.length>Pr;++Pr)$[Pr]&&kr.push({s:Pr,f:$[Pr]});var Rr=kr.length,Ir=kr.slice();if(!Rr)return[new Wr(0),0];if(Rr==1){var Fr=new Wr(kr[0].s+1);return Fr[kr[0].s]=1,[Fr,1]}kr.sort((function(Ia,Ra){return Ia.f-Ra.f})),kr.push({s:-1,f:25001});var Lr=kr[0],qr=kr[1],fa=0,pa=1,ga=2;for(kr[0]={s:-1,f:Lr.f+qr.f,l:Lr,r:qr};pa!=Rr-1;)Lr=kr[kr[ga].f>kr[fa].f?fa++:ga++],qr=kr[fa!=pa&&kr[ga].f>kr[fa].f?fa++:ga++],kr[pa++]={s:-1,f:Lr.f+qr.f,l:Lr,r:qr};var xa=Ir[0].s;for(Pr=1;Rr>Pr;++Pr)Ir[Pr].s>xa&&(xa=Ir[Pr].s);var ya=new Gr(xa+1),ba=ps(kr[pa-1],ya,0);if(ba>Cr){Pr=0;var Aa=0,ka=ba-Cr,Ea=1<<ka;for(Ir.sort((function(Ia,Ra){return ya[Ra.s]-ya[Ia.s]||Ia.f-Ra.f}));Rr>Pr;++Pr){var Sa=Ir[Pr].s;if(Cr>=ya[Sa])break;Aa+=Ea-(1<<ba-ya[Sa]),ya[Sa]=Cr}for(Aa>>>=ka;Aa>0;){var Ca=Ir[Pr].s;Cr>ya[Ca]?Aa-=1<<Cr-ya[Ca]++-1:++Pr}for(;Pr>=0&&Aa;--Pr){var Ta=Ir[Pr].s;ya[Ta]==Cr&&(--ya[Ta],++Aa)}ba=Cr}return[new Wr(ya),ba]},ps=function($,Cr,kr){return $.s==-1?Math.max(ps($.l,Cr,kr+1),ps($.r,Cr,kr+1)):Cr[$.s]=kr},_s=function($){for(var Cr=$.length;Cr&&!$[--Cr];);for(var kr=new Gr(++Cr),Pr=0,Rr=$[0],Ir=1,Fr=function(qr){kr[Pr++]=qr},Lr=1;Cr>=Lr;++Lr)if($[Lr]==Rr&&Lr!=Cr)++Ir;else{if(!Rr&&Ir>2){for(;Ir>138;Ir-=138)Fr(32754);Ir>2&&(Fr(Ir>10?Ir-11<<5|28690:Ir-3<<5|12305),Ir=0)}else if(Ir>3){for(Fr(Rr),--Ir;Ir>6;Ir-=6)Fr(8304);Ir>2&&(Fr(Ir-3<<5|8208),Ir=0)}for(;Ir--;)Fr(Rr);Ir=1,Rr=$[Lr]}return[kr.subarray(0,Pr),Cr]},gs=function($,Cr){for(var kr=0,Pr=0;Cr.length>Pr;++Pr)kr+=$[Pr]*Cr[Pr];return kr},ms=function($,Cr,kr){var Pr=kr.length,Rr=hs(Cr+2);$[Rr]=255&Pr,$[Rr+1]=Pr>>>8,$[Rr+2]=255^$[Rr],$[Rr+3]=255^$[Rr+1];for(var Ir=0;Pr>Ir;++Ir)$[Rr+Ir+4]=kr[Ir];return 8*(Rr+4+Pr)},bs=function($,Cr,kr,Pr,Rr,Ir,Fr,Lr,qr,fa,pa){vs(Cr,pa++,kr),++Rr[256];for(var ga=fs(Rr,15),xa=ga[0],ya=ga[1],ba=fs(Ir,15),Aa=ba[0],ka=ba[1],Ea=_s(xa),Sa=Ea[0],Ca=Ea[1],Ta=_s(Aa),Ia=Ta[0],Ra=Ta[1],ja=new Gr(19),Oa=0;Sa.length>Oa;++Oa)ja[31&Sa[Oa]]++;for(Oa=0;Ia.length>Oa;++Oa)ja[31&Ia[Oa]]++;for(var La=fs(ja,7),Ha=La[0],Wa=La[1],Ja=19;Ja>4&&!Ha[Xr[Ja-1]];--Ja);var Ya,Za,Qa,Na,Ka=fa+5<<3,Fa=gs(Rr,os)+gs(Ir,as)+Fr,Va=gs(Rr,xa)+gs(Ir,Aa)+Fr+14+3*Ja+gs(ja,Ha)+(2*ja[16]+3*ja[17]+7*ja[18]);if(Fa>=Ka&&Va>=Ka)return ms(Cr,pa,$.subarray(qr,qr+fa));if(vs(Cr,pa,1+(Fa>Va)),pa+=2,Fa>Va){Ya=ns(xa,ya),Za=xa,Qa=ns(Aa,ka),Na=Aa;var Da=ns(Ha,Wa);for(vs(Cr,pa,Ca-257),vs(Cr,pa+5,Ra-1),vs(Cr,pa+10,Ja-4),pa+=14,Oa=0;Ja>Oa;++Oa)vs(Cr,pa+3*Oa,Ha[Xr[Oa]]);pa+=3*Ja;for(var Ba=[Sa,Ia],Ga=0;2>Ga;++Ga){var Ua=Ba[Ga];for(Oa=0;Ua.length>Oa;++Oa)vs(Cr,pa,Da[qa=31&Ua[Oa]]),pa+=Ha[qa],qa>15&&(vs(Cr,pa,Ua[Oa]>>>5&127),pa+=Ua[Oa]>>>12)}}else Ya=ls,Za=os,Qa=us,Na=as;for(Oa=0;Lr>Oa;++Oa)if(Pr[Oa]>255){var qa;cs(Cr,pa,Ya[257+(qa=Pr[Oa]>>>18&31)]),pa+=Za[qa+257],qa>7&&(vs(Cr,pa,Pr[Oa]>>>23&31),pa+=Jr[qa]);var $a=31&Pr[Oa];cs(Cr,pa,Qa[$a]),pa+=Na[$a],$a>3&&(cs(Cr,pa,Pr[Oa]>>>5&8191),pa+=Kr[$a])}else cs(Cr,pa,Ya[Pr[Oa]]),pa+=Za[Pr[Oa]];return cs(Cr,pa,Ya[256]),pa+Za[256]},ys=new Yr([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),ws=(function(){for(var $=new Yr(256),Cr=0;256>Cr;++Cr){for(var kr=Cr,Pr=9;--Pr;)kr=(1&kr&&3988292384)^kr>>>1;$[Cr]=kr}return $})(),Es=function($,Cr,kr){for(;kr;++Cr)$[Cr]=kr,kr>>>=8};function Ss($,Cr){Cr===void 0&&(Cr={});var kr=(function(){var ga=4294967295;return{p(xa){for(var ya=ga,ba=0;xa.length>ba;++ba)ya=ws[255&ya^xa[ba]]^ya>>>8;ga=ya},d(){return 4294967295^ga}}})(),Pr=$.length;kr.p($);var Rr,Ir,Fr,Lr,qr,fa=(Lr=10+((Rr=Cr).filename&&Rr.filename.length+1||0),qr=8,(function(ga,xa,ya,ba,Aa,ka){var Ea=ga.length,Sa=new Wr(ba+Ea+5*(1+Math.floor(Ea/7e3))+Aa),Ca=Sa.subarray(ba,Sa.length-Aa),Ta=0;if(!xa||8>Ea)for(var Ia=0;Ea>=Ia;Ia+=65535){var Ra=Ia+65535;Ea>Ra?Ta=ms(Ca,Ta,ga.subarray(Ia,Ra)):(Ca[Ia]=!0,Ta=ms(Ca,Ta,ga.subarray(Ia,Ea)))}else{for(var ja=ys[xa-1],Oa=ja>>>13,La=8191&ja,Ha=(1<<ya)-1,Wa=new Gr(32768),Ja=new Gr(Ha+1),Ya=Math.ceil(ya/3),Za=2*Ya,Qa=function(Dl){return(ga[Dl]^ga[Dl+1]<<Ya^ga[Dl+2]<<Za)&Ha},Na=new Yr(25e3),Ka=new Gr(288),Fa=new Gr(32),Va=0,Da=0,Ba=(Ia=0,0),Ga=0,Ua=0;Ea>Ia;++Ia){var qa=Qa(Ia),$a=32767&Ia,tl=Ja[qa];if(Wa[$a]=tl,Ja[qa]=$a,Ia>=Ga){var ll=Ea-Ia;if((Va>7e3||Ba>24576)&&ll>423){Ta=bs(ga,Ca,0,Na,Ka,Fa,Da,Ba,Ua,Ia-Ua,Ta),Ba=Va=Da=0,Ua=Ia;for(var ol=0;286>ol;++ol)Ka[ol]=0;for(ol=0;30>ol;++ol)Fa[ol]=0}var _a=2,nl=0,il=La,ul=$a-tl&32767;if(ll>2&&qa==Qa(Ia-ul))for(var sl=Math.min(Oa,ll)-1,rl=Math.min(32767,Ia),xl=Math.min(258,ll);rl>=ul&&--il&&$a!=tl;){if(ga[Ia+_a]==ga[Ia+_a-ul]){for(var El=0;xl>El&&ga[Ia+El]==ga[Ia+El-ul];++El);if(El>_a){if(_a=El,nl=ul,El>sl)break;var Cl=Math.min(ul,El-2),Ml=0;for(ol=0;Cl>ol;++ol){var hl=Ia-ul+ol+32768&32767,yl=hl-Wa[hl]+32768&32767;yl>Ml&&(Ml=yl,tl=hl)}}}ul+=($a=tl)-(tl=Wa[$a])+32768&32767}if(nl){Na[Ba++]=268435456|ts[_a]<<18|is[nl];var Tl=31&ts[_a],jl=31&is[nl];Da+=Jr[Tl]+Kr[jl],++Ka[257+Tl],++Fa[jl],Ga=Ia+_a,++Va}else Na[Ba++]=ga[Ia],++Ka[ga[Ia]]}}Ta=bs(ga,Ca,!0,Na,Ka,Fa,Da,Ba,Ua,Ia-Ua,Ta)}return ds(Sa,0,ba+hs(Ta)+Aa)})(Ir=$,(Fr=Cr).level==null?6:Fr.level,Fr.mem==null?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(Ir.length)))):12+Fr.mem,Lr,qr)),pa=fa.length;return(function(ga,xa){var ya=xa.filename;if(ga[0]=31,ga[1]=139,ga[2]=8,ga[8]=2>xa.level?4:xa.level==9?2:0,ga[9]=3,xa.mtime!=0&&Es(ga,4,Math.floor(new Date(xa.mtime||Date.now())/1e3)),ya){ga[3]=8;for(var ba=0;ya.length>=ba;++ba)ga[ba+10]=ya.charCodeAt(ba)}})(fa,Cr),Es(fa,pa-8,kr.d()),Es(fa,pa-4,Pr),fa}var xs=!!o$d||!!n$9,Ts="text/plain",$s=!1,Rs=function($,Cr,kr){var Pr;kr===void 0&&(kr=!0);var[Rr,Ir]=$.split("?"),Fr=p$3({},Cr),Lr=(Pr=Ir==null?void 0:Ir.split("&").map((fa=>{var pa,[ga,xa]=fa.split("="),ya=kr&&(pa=Fr[ga])!==null&&pa!==void 0?pa:xa;return delete Fr[ga],ga+"="+ya})))!==null&&Pr!==void 0?Pr:[],qr=(function(fa,pa){var ga,xa;pa===void 0&&(pa="&");var ya=[];return Ee(fa,(function(ba,Aa){C(ba)||C(Aa)||Aa==="undefined"||(ga=encodeURIComponent((ka=>ka instanceof File)(ba)?ba.name:ba.toString()),xa=encodeURIComponent(Aa),ya[ya.length]=xa+"="+ga)})),ya.join(pa)})(Fr);return qr&&Lr.push(qr),Rr+"?"+Lr.join("&")},ks=($,Cr)=>JSON.stringify($,((kr,Pr)=>typeof Pr=="bigint"?Pr.toString():Pr),Cr),Ps=$=>{if($.zt)return $.zt;var{data:Cr,compression:kr}=$;if(Cr){if(kr===Vr.GZipJS){var Pr=Ss((function(Lr,qr){var fa=Lr.length;if(typeof TextEncoder<"u")return new TextEncoder().encode(Lr);for(var pa=new Wr(Lr.length+(Lr.length>>>1)),ga=0,xa=function(ka){pa[ga++]=ka},ya=0;fa>ya;++ya){if(ga+5>pa.length){var ba=new Wr(ga+8+(fa-ya<<1));ba.set(pa),pa=ba}var Aa=Lr.charCodeAt(ya);128>Aa?xa(Aa):2048>Aa?(xa(192|Aa>>>6),xa(128|63&Aa)):Aa>55295&&57344>Aa?(xa(240|(Aa=65536+(1047552&Aa)|1023&Lr.charCodeAt(++ya))>>>18),xa(128|Aa>>>12&63),xa(128|Aa>>>6&63),xa(128|63&Aa)):(xa(224|Aa>>>12),xa(128|Aa>>>6&63),xa(128|63&Aa))}return ds(pa,0,ga)})(ks(Cr)),{mtime:0});return{contentType:Ts,body:Pr.buffer.slice(Pr.byteOffset,Pr.byteOffset+Pr.byteLength),estimatedSize:Pr.byteLength}}if(kr===Vr.Base64){var Rr=(function(Lr){return Lr&&btoa(encodeURIComponent(Lr).replace(/%([0-9A-F]{2})/g,((qr,fa)=>String.fromCharCode(parseInt(fa,16)))))})(ks(Cr)),Ir=(Lr=>"data="+encodeURIComponent(typeof Lr=="string"?Lr:ks(Lr)))(Rr);return{contentType:"application/x-www-form-urlencoded",body:Ir,estimatedSize:new Blob([Ir]).size}}var Fr=ks(Cr);return{contentType:"application/json",body:Fr,estimatedSize:new Blob([Fr]).size}}},Os=(function(){var $=f$2((function*(Cr){var kr=ks(Cr.data),Pr=yield(function(Ir,Fr,Lr){return g$1.apply(this,arguments)})(kr,v$1.DEBUG,{rethrow:!0});if(!Pr)return Cr;var Rr=yield Pr.arrayBuffer();return p$3({},Cr,{zt:{contentType:Ts,body:Rr,estimatedSize:Rr.byteLength}})}));return function(Cr){return $.apply(this,arguments)}})(),Is=($,Cr)=>Rs($,{_:new Date().getTime().toString(),ver:v$1.JS_SDK_VERSION,compression:Cr}),Cs=[];n$9&&Cs.push({transport:"fetch",method($){var Cr,kr,{contentType:Pr,body:Rr,estimatedSize:Ir}=(Cr=Ps($))!==null&&Cr!==void 0?Cr:{},Fr=new Headers;Ee($.headers,(function(pa,ga){Fr.append(ga,pa)})),Pr&&Fr.append("Content-Type",Pr);var Lr=$.url,qr=null;if(a$h){var fa=new a$h;qr={signal:fa.signal,timeout:setTimeout((()=>fa.abort()),$.timeout)}}n$9(Lr,p$3({method:($==null?void 0:$.method)||"GET",headers:Fr,keepalive:$.method==="POST"&&52428.8>(Ir||0),body:Rr,signal:(kr=qr)==null?void 0:kr.signal},$.fetchOptions)).then((pa=>pa.text().then((ga=>{var xa={statusCode:pa.status,text:ga};if(pa.status===200)try{xa.json=JSON.parse(ga)}catch(ya){yi.error(ya)}$.callback==null||$.callback(xa)})))).catch((pa=>{yi.error(pa),$.callback==null||$.callback({statusCode:0,error:pa})})).finally((()=>qr?clearTimeout(qr.timeout):null))}}),o$d&&Cs.push({transport:"XHR",method($){var Cr,kr=new o$d;kr.open($.method||"GET",$.url,!0);var{contentType:Pr,body:Rr}=(Cr=Ps($))!==null&&Cr!==void 0?Cr:{};Ee($.headers,(function(Ir,Fr){kr.setRequestHeader(Fr,Ir)})),Pr&&kr.setRequestHeader("Content-Type",Pr),$.timeout&&(kr.timeout=$.timeout),$.disableXHRCredentials||(kr.withCredentials=!0),kr.onreadystatechange=()=>{if(kr.readyState===4){var Ir={statusCode:kr.status,text:kr.responseText};if(kr.status===200)try{Ir.json=JSON.parse(kr.responseText)}catch{}$.callback==null||$.callback(Ir)}},kr.send(Rr)}}),e$n!=null&&e$n.sendBeacon&&Cs.push({transport:"sendBeacon",method($){var Cr=Rs($.url,{beacon:"1"});try{var kr,{contentType:Pr,body:Rr}=(kr=Ps($))!==null&&kr!==void 0?kr:{};if(!Rr)return;var Ir=Rr instanceof Blob?Rr:new Blob([Rr],{type:Pr});e$n.sendBeacon(Cr,Ir)}catch{}}});var Fs=3e3;class As{constructor(Cr,kr){this.Ti=!0,this.Ai=[],this.Ei=Y((kr==null?void 0:kr.flush_interval_ms)||Fs,250,5e3,yi.createLogger("flush interval"),Fs),this.Ri=Cr}enqueue(Cr){this.Ai.push(Cr),this.Ni||this.Mi()}unload(){this.Fi();var Cr=this.Ai.length>0?this.Oi():{},kr=Object.values(Cr);[...kr.filter((Pr=>Pr.url.indexOf("/e")===0)),...kr.filter((Pr=>Pr.url.indexOf("/e")!==0))].map((Pr=>{this.Ri(p$3({},Pr,{transport:"sendBeacon"}))}))}enable(){this.Ti=!1,this.Mi()}Mi(){var Cr=this;this.Ti||(this.Ni=setTimeout((()=>{if(this.Fi(),this.Ai.length>0){var kr=this.Oi(),Pr=function(){var Ir=kr[Rr],Fr=new Date().getTime();Ir.data&&k(Ir.data)&&Ee(Ir.data,(Lr=>{Lr.offset=Math.abs(Lr.timestamp-Fr),delete Lr.timestamp})),Cr.Ri(Ir)};for(var Rr in kr)Pr()}}),this.Ei))}Fi(){clearTimeout(this.Ni),this.Ni=void 0}Oi(){var Cr={};return Ee(this.Ai,(kr=>{var Pr,Rr=kr,Ir=(Rr?Rr.batchKey:null)||Rr.url;C(Cr[Ir])&&(Cr[Ir]=p$3({},Rr,{data:[]})),(Pr=Cr[Ir].data)==null||Pr.push(Rr.data)})),this.Ai=[],Cr}}var Ms=["retriesPerformedSoFar"];class Ds{constructor(Cr){this.Pi=!1,this.Li=3e3,this.Ai=[],this._instance=Cr,this.Ai=[],this.Di=!0,!C(t$a)&&"onLine"in t$a.navigator&&(this.Di=t$a.navigator.onLine,this.Bi=()=>{this.Di=!0,this.ji()},this.qi=()=>{this.Di=!1},Oe(t$a,"online",this.Bi),Oe(t$a,"offline",this.qi))}get length(){return this.Ai.length}retriableRequest(Cr){var{retriesPerformedSoFar:kr}=Cr,Pr=_$2(Cr,Ms);U(kr)&&(Pr.url=Rs(Pr.url,{retry_count:kr})),this._instance._send_request(p$3({},Pr,{callback:Rr=>{Rr.statusCode===200||Rr.statusCode>=400&&500>Rr.statusCode||(kr??0)>=10?Pr.callback==null||Pr.callback(Rr):this.Zi(p$3({retriesPerformedSoFar:kr},Pr))}}))}Zi(Cr){var kr=Cr.retriesPerformedSoFar||0;Cr.retriesPerformedSoFar=kr+1;var Pr=(function(Fr){var Lr=3e3*Math.pow(2,Fr),qr=Lr/2,fa=Math.min(18e5,Lr),pa=Math.random()-.5;return Math.ceil(fa+pa*(fa-qr))})(kr),Rr=Date.now()+Pr;this.Ai.push({retryAt:Rr,requestOptions:Cr});var Ir="Enqueued failed request for retry in "+Pr;navigator.onLine||(Ir+=" (Browser is offline)"),yi.warn(Ir),this.Pi||(this.Pi=!0,this.$i())}$i(){if(this.Vi&&clearTimeout(this.Vi),this.Ai.length===0)return this.Pi=!1,void(this.Vi=void 0);this.Vi=setTimeout((()=>{this.Di&&this.Ai.length>0&&this.ji(),this.$i()}),this.Li)}ji(){var Cr=Date.now(),kr=[],Pr=this.Ai.filter((Ir=>Cr>Ir.retryAt||(kr.push(Ir),!1)));if(this.Ai=kr,Pr.length>0)for(var{requestOptions:Rr}of Pr)this.retriableRequest(Rr)}unload(){for(var{requestOptions:Cr}of(this.Vi&&(clearTimeout(this.Vi),this.Vi=void 0),this.Pi=!1,C(t$a)||(this.Bi&&(t$a.removeEventListener("online",this.Bi),this.Bi=void 0),this.qi&&(t$a.removeEventListener("offline",this.qi),this.qi=void 0)),this.Ai))try{this._instance._send_request(p$3({},Cr,{transport:"sendBeacon"}))}catch(kr){yi.error(kr)}this.Ai=[]}}class Ls{constructor(Cr){this.Hi=()=>{var kr,Pr,Rr,Ir;this.zi||(this.zi={});var Fr=this.scrollElement(),Lr=this.scrollY(),qr=Fr?Math.max(0,Fr.scrollHeight-Fr.clientHeight):0,fa=Lr+((Fr==null?void 0:Fr.clientHeight)||0),pa=(Fr==null?void 0:Fr.scrollHeight)||0;this.zi.lastScrollY=Math.ceil(Lr),this.zi.maxScrollY=Math.max(Lr,(kr=this.zi.maxScrollY)!==null&&kr!==void 0?kr:0),this.zi.maxScrollHeight=Math.max(qr,(Pr=this.zi.maxScrollHeight)!==null&&Pr!==void 0?Pr:0),this.zi.lastContentY=fa,this.zi.maxContentY=Math.max(fa,(Rr=this.zi.maxContentY)!==null&&Rr!==void 0?Rr:0),this.zi.maxContentHeight=Math.max(pa,(Ir=this.zi.maxContentHeight)!==null&&Ir!==void 0?Ir:0)},this._instance=Cr}get Ui(){return this._instance.config.scroll_root_selector}getContext(){return this.zi}resetContext(){var Cr=this.zi;return setTimeout(this.Hi,0),Cr}startMeasuringScrollPosition(){Oe(t$a,"scroll",this.Hi,{capture:!0}),Oe(t$a,"scrollend",this.Hi,{capture:!0}),Oe(t$a,"resize",this.Hi)}scrollElement(){if(!this.Ui)return t$a==null?void 0:t$a.document.documentElement;var Cr=k(this.Ui)?this.Ui:[this.Ui];for(var kr of Cr){var Pr=t$a==null?void 0:t$a.document.querySelector(kr);if(Pr)return Pr}}scrollY(){if(this.Ui){var Cr=this.scrollElement();return Cr&&Cr.scrollTop||0}return t$a&&(t$a.scrollY||t$a.pageYOffset||t$a.document.documentElement.scrollTop)||0}scrollX(){if(this.Ui){var Cr=this.scrollElement();return Cr&&Cr.scrollLeft||0}return t$a&&(t$a.scrollX||t$a.pageXOffset||t$a.document.documentElement.scrollLeft)||0}}var Us=$=>yr($==null?void 0:$.config.mask_personal_data_properties,$==null?void 0:$.config.custom_personal_data_properties);class Ns{constructor(Cr,kr,Pr,Rr){this.Yi=Ir=>{var Fr=this.Gi();if(!Fr||Fr.sessionId!==Ir){var Lr={sessionId:Ir,props:this.Wi(this._instance)};this.Xi.register({[te]:Lr})}},this._instance=Cr,this.Ji=kr,this.Xi=Pr,this.Wi=Rr||Us,this.Ji.onSessionId(this.Yi)}Gi(){return this.Xi.props[te]}getSetOnceProps(){var Cr,kr=(Cr=this.Gi())==null?void 0:Cr.props;return kr?"r"in kr?wr(kr):{$referring_domain:kr.referringDomain,$pathname:kr.initialPathName,utm_source:kr.utm_source,utm_campaign:kr.utm_campaign,utm_medium:kr.utm_medium,utm_content:kr.utm_content,utm_term:kr.utm_term}:{}}getSessionProps(){var Cr={};return Ee(Re(this.getSetOnceProps()),((kr,Pr)=>{Pr==="$current_url"&&(Pr="url"),Cr["$session_entry_"+S(Pr)]=kr})),Cr}}class js{constructor(){this.Ki={}}on(Cr,kr){return this.Ki[Cr]||(this.Ki[Cr]=[]),this.Ki[Cr].push(kr),()=>{this.Ki[Cr]=this.Ki[Cr].filter((Pr=>Pr!==kr))}}emit(Cr,kr){for(var Pr of this.Ki[Cr]||[])Pr(kr);for(var Rr of this.Ki["*"]||[])Rr(Cr,kr)}}var zs=wi("[SessionId]");class Bs{on(Cr,kr){return this.Qi.on(Cr,kr)}constructor(Cr,kr,Pr){var Rr;if(this.tr=[],this.er=void 0,this.Qi=new js,this.ir=(fa,pa)=>!(!U(fa)||!U(pa))&&Math.abs(fa-pa)>this.sessionTimeoutMs,!Cr.persistence)throw new Error("SessionIdManager requires a PostHogPersistence instance");if(Cr.config.cookieless_mode===de)throw new Error('SessionIdManager cannot be used with cookieless_mode="always"');this.Rt=Cr.config,this.Xi=Cr.persistence,this.rr=void 0,this.nr=void 0,this._sessionStartTimestamp=null,this._sessionActivityTimestamp=null,this.sr=kr||Le,this.ar=Pr||Le;var Ir=this.Rt.persistence_name||this.Rt.token;if(this._sessionTimeoutMs=1e3*Y(this.Rt.session_idle_timeout_seconds||1800,60,36e3,zs.createLogger("session_idle_timeout_seconds"),1800),Cr.register({$configured_session_timeout_ms:this._sessionTimeoutMs}),this.lr(),this.ur="ph_"+Ir+"_window_id",this.hr="ph_"+Ir+"_primary_window_exists",this.cr()){var Fr=Ye.Wt(this.ur),Lr=Ye.Wt(this.hr);Fr&&!Lr?this.rr=Fr:Ye.Jt(this.ur),Ye.Xt(this.hr,!0)}if((Rr=this.Rt.bootstrap)!=null&&Rr.sessionID)try{var qr=(fa=>{var pa=this.Rt.bootstrap.sessionID.replace(/-/g,"");if(pa.length!==32)throw new Error("Not a valid UUID");if(pa[12]!=="7")throw new Error("Not a UUIDv7");return parseInt(pa.substring(0,12),16)})();this.dr(this.Rt.bootstrap.sessionID,new Date().getTime(),qr)}catch(fa){zs.error("Invalid sessionID in bootstrap",fa)}this.vr()}get sessionTimeoutMs(){return this._sessionTimeoutMs}onSessionId(Cr){return C(this.tr)&&(this.tr=[]),this.tr.push(Cr),this.nr&&Cr(this.nr,this.rr),()=>{this.tr=this.tr.filter((kr=>kr!==Cr))}}cr(){return this.Rt.persistence!=="memory"&&!this.Xi.fi&&Ye.Ut()}pr(Cr){Cr!==this.rr&&(this.rr=Cr,this.cr()&&Ye.Xt(this.ur,Cr))}gr(){return this.rr?this.rr:this.cr()?Ye.Wt(this.ur):null}dr(Cr,kr,Pr){Cr===this.nr&&kr===this._sessionActivityTimestamp&&Pr===this._sessionStartTimestamp||(this._sessionStartTimestamp=Pr,this._sessionActivityTimestamp=kr,this.nr=Cr,this.Xi.register({[Ui]:[kr,Cr,Pr]}))}mr(){var Cr=this.Xi.props[Ui];return k(Cr)&&Cr.length===2&&Cr.push(Cr[0]),Cr||[0,null,0]}resetSessionId(){this.dr(null,null,null)}destroy(){clearTimeout(this.yr),this.yr=void 0,this.er&&t$a&&(t$a.removeEventListener(_e,this.er,{capture:!1}),this.er=void 0),this.tr=[]}vr(){this.er=()=>{this.cr()&&Ye.Jt(this.hr)},Oe(t$a,_e,this.er,{capture:!1})}checkAndGetSessionAndWindowId(Cr,kr){if(Cr===void 0&&(Cr=!1),kr===void 0&&(kr=null),this.Rt.cookieless_mode===de)throw new Error('checkAndGetSessionAndWindowId should not be called with cookieless_mode="always"');var Pr=kr||new Date().getTime(),[Rr,Ir,Fr]=this.mr(),Lr=this.gr(),qr=U(Fr)&&Math.abs(Pr-Fr)>864e5,fa=!1,pa=!Ir,ga=!pa&&!Cr&&this.ir(Pr,Rr);pa||ga||qr?(Ir=this.sr(),Lr=this.ar(),zs.info("new session ID generated",{sessionId:Ir,windowId:Lr,changeReason:{noSessionId:pa,activityTimeout:ga,sessionPastMaximumLength:qr}}),Fr=Pr,fa=!0):Lr||(Lr=this.ar(),fa=!0);var xa=U(Rr)&&Cr&&!qr?Rr:Pr,ya=U(Fr)?Fr:new Date().getTime();return this.pr(Lr),this.dr(Ir,xa,ya),Cr||this.lr(),fa&&this.tr.forEach((ba=>ba(Ir,Lr,fa?{noSessionId:pa,activityTimeout:ga,sessionPastMaximumLength:qr}:void 0))),{sessionId:Ir,windowId:Lr,sessionStartTimestamp:ya,changeReason:fa?{noSessionId:pa,activityTimeout:ga,sessionPastMaximumLength:qr}:void 0,lastActivityTimestamp:Rr}}lr(){clearTimeout(this.yr),this.yr=setTimeout((()=>{var[Cr]=this.mr();if(this.ir(new Date().getTime(),Cr)){var kr=this.nr;this.resetSessionId(),this.Qi.emit("forcedIdleReset",{idleSessionId:kr})}}),1.1*this.sessionTimeoutMs)}}var Hs=function($,Cr){if(!$)return!1;var kr=$.userAgent;if(kr&&y(kr,Cr))return!0;try{var Pr=$==null?void 0:$.userAgentData;if(Pr!=null&&Pr.brands&&Pr.brands.some((Rr=>y(Rr==null?void 0:Rr.brand,Cr))))return!0}catch{}return!!$.webdriver},qs=function($,Cr){if(!(function(kr){try{new RegExp(kr)}catch{return!1}return!0})(Cr))return!1;try{return new RegExp(Cr).test($)}catch{return!1}};function Vs($,Cr,kr){return ks({distinct_id:$,userPropertiesToSet:Cr,userPropertiesToSetOnce:kr})}var Ws={exact:($,Cr)=>Cr.some((kr=>$.some((Pr=>kr===Pr)))),is_not:($,Cr)=>Cr.every((kr=>$.every((Pr=>kr!==Pr)))),regex:($,Cr)=>Cr.some((kr=>$.some((Pr=>qs(kr,Pr))))),not_regex:($,Cr)=>Cr.every((kr=>$.every((Pr=>!qs(kr,Pr))))),icontains:($,Cr)=>Cr.map(Gs).some((kr=>$.map(Gs).some((Pr=>kr.includes(Pr))))),not_icontains:($,Cr)=>Cr.map(Gs).every((kr=>$.map(Gs).every((Pr=>!kr.includes(Pr))))),gt:($,Cr)=>Cr.some((kr=>{var Pr=parseFloat(kr);return!isNaN(Pr)&&$.some((Rr=>Pr>parseFloat(Rr)))})),lt:($,Cr)=>Cr.some((kr=>{var Pr=parseFloat(kr);return!isNaN(Pr)&&$.some((Rr=>Pr<parseFloat(Rr)))}))},Gs=$=>$.toLowerCase();function Ys($,Cr){return!$||Object.entries($).every((kr=>{var[Pr,Rr]=kr,Ir=Cr==null?void 0:Cr[Pr];if(C(Ir)||M$1(Ir))return!1;var Fr=[String(Ir)],Lr=Ws[Rr.operator];return!!Lr&&Lr(Rr.values,Fr)}))}var Js="custom",Ks="i.posthog.com",Xs=/^\/static\//;class Qs{constructor(Cr){this.br={},this.instance=Cr}get apiHost(){var Cr=this.instance.config.api_host.trim().replace(/\/$/,"");return Cr==="https://app.posthog.com"?"https://us.i.posthog.com":Cr}get flagsApiHost(){var Cr=this.instance.config.flags_api_host;return Cr?Cr.trim().replace(/\/$/,""):this.apiHost}get uiHost(){var Cr,kr=(Cr=this.instance.config.ui_host)==null?void 0:Cr.replace(/\/$/,"");return kr||(kr=this.apiHost.replace("."+Ks,".posthog.com")),kr==="https://app.posthog.com"?"https://us.posthog.com":kr}get region(){return this.br[this.apiHost]||(this.br[this.apiHost]=/https:\/\/(app|us|us-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?"us":/https:\/\/(eu|eu-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?"eu":Js),this.br[this.apiHost]}wr(Cr){var kr=this.instance.config.__preview_external_dependency_versioned_paths;if(typeof kr=="string"&&Xs.test(Cr))return kr.trim().replace(/\/$/,"")||void 0}endpointFor(Cr,kr){if(kr===void 0&&(kr=""),kr&&(kr=kr[0]==="/"?kr:"/"+kr),Cr==="ui")return this.uiHost+kr;if(Cr==="flags")return this.flagsApiHost+kr;if(Cr==="assets"){var Pr=this.wr(kr);if(Pr)return""+Pr+kr}if(this.region===Js)return this.apiHost+kr;var Rr=Ks+kr;switch(Cr){case"assets":return"https://"+this.region+"-assets."+Rr;case"api":return"https://"+this.region+"."+Rr}}}var Zs=wi("[Surveys]"),tn="seenSurvey_",en=($,Cr)=>{var kr="$survey_"+Cr+"/"+$.id;return $.current_iteration&&$.current_iteration>0&&(kr="$survey_"+Cr+"/"+$.id+"/"+$.current_iteration),kr},rn=$=>((Cr,kr)=>{var Pr=""+tn+kr.id;return kr.current_iteration&&kr.current_iteration>0&&(Pr=""+tn+kr.id+"_"+kr.current_iteration),Pr})(0,$),sn=[Or.Popover,Or.Widget,Or.API],nn={ignoreConditions:!1,ignoreDelay:!1,displayType:Dr.Popover},on=wi("[PostHog ExternalIntegrations]"),an={intercom:"intercom-integration",crispChat:"crisp-chat-integration"};class ln{constructor(Cr){this._instance=Cr}ni(Cr,kr){var Pr;(Pr=h$3.__PosthogExtensions__)==null||Pr.loadExternalDependency==null||Pr.loadExternalDependency(this._instance,Cr,(Rr=>{if(Rr)return on.error("failed to load script",Rr);kr()}))}startIfEnabledOrStop(){var Cr=this,kr=function(Fr){var Lr,qr,fa;!Rr||(Lr=h$3.__PosthogExtensions__)!=null&&(Lr=Lr.integrations)!=null&&Lr[Fr]||Cr.ni(an[Fr],(()=>{var pa;(pa=h$3.__PosthogExtensions__)==null||(pa=pa.integrations)==null||(pa=pa[Fr])==null||pa.start(Cr._instance)})),!Rr&&(qr=h$3.__PosthogExtensions__)!=null&&(qr=qr.integrations)!=null&&qr[Fr]&&((fa=h$3.__PosthogExtensions__)==null||(fa=fa.integrations)==null||(fa=fa[Fr])==null||fa.stop())};for(var[Pr,Rr]of Object.entries((Ir=this._instance.config.integrations)!==null&&Ir!==void 0?Ir:{})){var Ir;kr(Pr)}}}var un,hn={},dn=0,vn=()=>{},cn$2='Consent opt in/out is not valid with cookieless_mode="always" and will be ignored',fn="Surveys module not available",pn="sanitize_properties is deprecated. Use before_send instead",_n="Invalid value for property_denylist config: ",gn="posthog",mn=!xs&&(u$1==null?void 0:u$1.indexOf("MSIE"))===-1&&(u$1==null?void 0:u$1.indexOf("Mozilla"))===-1,bn=$=>{var Cr;return p$3({api_host:"https://us.i.posthog.com",flags_api_host:null,ui_host:null,token:"",autocapture:!0,cross_subdomain_cookie:Pe(r$c==null?void 0:r$c.location),persistence:"localStorage+cookie",persistence_name:"",cookie_persisted_properties:[],loaded:vn,save_campaign_params:!0,custom_campaign_params:[],custom_blocked_useragents:[],save_referrer:!0,capture_pageleave:"if_capture_pageview",defaults:$??"unset",__preview_deferred_init_extensions:!1,__preview_external_dependency_versioned_paths:!1,debug:s$d&&F(s$d==null?void 0:s$d.search)&&s$d.search.indexOf("__posthog_debug=true")!==-1||!1,cookie_expiration:365,upgrade:!1,disable_session_recording:!1,disable_persistence:!1,disable_web_experiments:!0,disable_surveys:!1,disable_surveys_automatic_display:!1,disable_conversations:!1,disable_product_tours:!1,disable_external_dependency_loading:!1,enable_recording_console_log:void 0,secure_cookie:(t$a==null||(Cr=t$a.location)==null?void 0:Cr.protocol)==="https:",ip:!1,opt_out_capturing_by_default:!1,opt_out_persistence_by_default:!1,opt_out_useragent_filter:!1,opt_out_capturing_persistence_type:"localStorage",consent_persistence_name:null,opt_out_capturing_cookie_prefix:null,opt_in_site_apps:!1,property_denylist:[],respect_dnt:!1,sanitize_properties:null,request_headers:{},request_batching:!0,properties_string_max_length:65535,mask_all_element_attributes:!1,mask_all_text:!1,mask_personal_data_properties:!1,custom_personal_data_properties:[],advanced_disable_flags:!1,advanced_disable_decide:!1,advanced_disable_feature_flags:!1,advanced_disable_feature_flags_on_first_load:!1,advanced_only_evaluate_survey_feature_flags:!1,advanced_feature_flags_dedup_per_session:!1,advanced_enable_surveys:!1,advanced_disable_toolbar_metrics:!1,feature_flag_request_timeout_ms:3e3,surveys_request_timeout_ms:1e4,on_request_error(kr){yi.error("Bad HTTP status: "+kr.statusCode+" "+kr.text)},get_device_id:kr=>kr,capture_performance:void 0,name:"posthog",bootstrap:{},disable_compression:!1,session_idle_timeout_seconds:1800,person_profiles:fe,before_send:void 0,request_queue_config:{flush_interval_ms:Fs},error_tracking:{},_onCapture:vn,__preview_eager_load_replay:!1},(kr=>({rageclick:!kr||"2025-11-30">kr||{content_ignorelist:!0},capture_pageview:!kr||"2025-05-24">kr||"history_change",session_recording:kr&&kr>="2025-11-30"?{strictMinimumDuration:!0}:{},external_scripts_inject_target:kr&&kr>="2026-01-30"?"head":"body",internal_or_test_user_hostname:kr&&kr>="2026-01-30"?/^(localhost|127\.0\.0\.1)$/:void 0}))($))},yn=[["process_person","person_profiles"],["xhr_headers","request_headers"],["cookie_name","persistence_name"],["disable_cookie","disable_persistence"],["store_google","save_campaign_params"],["verbose","debug"]],wn=$=>{var Cr={};for(var[kr,Pr]of yn)C($[kr])||(Cr[Pr]=$[kr]);var Rr=Se({},Cr,$);return k($.property_blacklist)&&(C($.property_denylist)?Rr.property_denylist=$.property_blacklist:k($.property_denylist)?Rr.property_denylist=[...$.property_blacklist,...$.property_denylist]:yi.error(_n+$.property_denylist)),Rr};class En{constructor(){this.__forceAllowLocalhost=!1}get _r(){return this.__forceAllowLocalhost}set _r(Cr){yi.error("WebPerformanceObserver is deprecated and has no impact on network capture. Use `_forceAllowLocalhostNetworkCapture` on `posthog.sessionRecording`"),this.__forceAllowLocalhost=Cr}}class Sn{Ir(Cr,kr){if(Cr){var Pr=this.Cr.indexOf(Cr);Pr!==-1&&this.Cr.splice(Pr,1)}return this.Cr.push(kr),kr.initialize==null||kr.initialize(),kr}Sr(){return this.config.cookieless_mode===de||this.config.cookieless_mode===he&&this.consent.isRejected()}get decideEndpointWasHit(){var Cr,kr;return(Cr=(kr=this.featureFlags)==null?void 0:kr.hasLoadedFlags)!==null&&Cr!==void 0&&Cr}get flagsEndpointWasHit(){var Cr,kr;return(Cr=(kr=this.featureFlags)==null?void 0:kr.hasLoadedFlags)!==null&&Cr!==void 0&&Cr}constructor(){var Cr;this.webPerformance=new En,this.kr=!1,this.version=v$1.LIB_VERSION,this.Tr=new js,this.Cr=[],this._calculate_event_properties=this.calculateEventProperties.bind(this),this.config=bn(),this.SentryIntegration=rr,this.sentryIntegration=Pr=>(function(Rr,Ir){var Fr=er(Rr,Ir);return{name:ir,processEvent:Lr=>Fr(Lr)}})(this,Pr),this.__request_queue=[],this.__loaded=!1,this.analyticsDefaultEndpoint="/e/",this.Ar=!1,this.Er=null,this.Rr=null,this.Nr=null,this.scrollManager=new Ls(this),this.pageViewManager=new sr(this),this.rateLimiter=new zr(this),this.requestRouter=new Qs(this),this.consent=new Je(this),this.externalIntegrations=new ln(this);var kr=(Cr=Sn.__defaultExtensionClasses)!==null&&Cr!==void 0?Cr:{};this.featureFlags=kr.featureFlags&&new kr.featureFlags(this),this.toolbar=kr.toolbar&&new kr.toolbar(this),this.surveys=kr.surveys&&new kr.surveys(this),this.conversations=kr.conversations&&new kr.conversations(this),this.logs=kr.logs&&new kr.logs(this),this.experiments=kr.experiments&&new kr.experiments(this),this.exceptions=kr.exceptions&&new kr.exceptions(this),this.people={set:(Pr,Rr,Ir)=>{var Fr=F(Pr)?{[Pr]:Rr}:Pr;this.setPersonProperties(Fr),Ir==null||Ir({})},set_once:(Pr,Rr,Ir)=>{var Fr=F(Pr)?{[Pr]:Rr}:Pr;this.setPersonProperties(void 0,Fr),Ir==null||Ir({})}},this.on("eventCaptured",(Pr=>yi.info('send "'+(Pr==null?void 0:Pr.event)+'"',Pr)))}init(Cr,kr,Pr){if(Pr&&Pr!==gn){var Rr,Ir=(Rr=hn[Pr])!==null&&Rr!==void 0?Rr:new Sn;return Ir._init(Cr,kr,Pr),hn[Pr]=Ir,hn[gn][Pr]=Ir,Ir}return this._init(Cr,kr,Pr)}_init(Cr,kr,Pr){var Rr,Ir;if(kr===void 0&&(kr={}),C(Cr)||A(Cr))return yi.critical("PostHog was initialized without a token. This likely indicates a misconfiguration. Please check the first argument passed to posthog.init()"),this;if(this.__loaded)return console.warn("[PostHog.js]","You have already initialized PostHog! Re-initializing is a no-op"),this;this.__loaded=!0,this.config={},kr.debug=this.Mr(kr.debug),this.Fr=kr,this.Or=[],kr.person_profiles?this.Rr=kr.person_profiles:kr.process_person&&(this.Rr=kr.process_person),this.set_config(Se({},bn(kr.defaults),wn(kr),{name:Pr,token:Cr})),this.config.on_xhr_error&&yi.error("on_xhr_error is deprecated. Use on_request_error instead"),this.compression=kr.disable_compression?void 0:Vr.GZipJS;var Fr=this.Pr();this.persistence=new Tr(this.config,Fr),this.sessionPersistence=this.config.persistence==="sessionStorage"||this.config.persistence==="memory"?this.persistence:new Tr(p$3({},this.config,{persistence:"sessionStorage"}),Fr);var Lr=p$3({},this.persistence.props),qr=p$3({},this.sessionPersistence.props);this.register({$initialization_time:new Date().toISOString()}),this.Lr=new As((ka=>this.Dr(ka)),this.config.request_queue_config),this.Br=new Ds(this),this.__request_queue=[];var fa=this.Sr();if(fa||(this.sessionManager=new Bs(this),this.sessionPropsManager=new Ns(this,this.sessionManager,this.persistence)),this.config.__preview_deferred_init_extensions?(yi.info("Deferring extension initialization to improve startup performance"),setTimeout((()=>{this.jr(fa)}),0)):(yi.info("Initializing extensions synchronously"),this.jr(fa)),v$1.DEBUG=v$1.DEBUG||this.config.debug,v$1.DEBUG&&yi.info("Starting in debug mode",{this:this,config:kr,thisC:p$3({},this.config),p:Lr,s:qr}),!this.config.identity_distinct_id||(Rr=kr.bootstrap)!=null&&Rr.distinctID||(kr.bootstrap=p$3({},kr.bootstrap,{distinctID:this.config.identity_distinct_id,isIdentifiedID:!0})),((Ir=kr.bootstrap)==null?void 0:Ir.distinctID)!==void 0){var pa=kr.bootstrap.distinctID,ga=this.get_distinct_id(),xa=this.persistence.get_property(Zi);if(kr.bootstrap.isIdentifiedID&&ga!=null&&ga!==pa&&xa===ve$1)this.identify(pa);else if(kr.bootstrap.isIdentifiedID&&ga!=null&&ga!==pa&&xa===ce)yi.warn("Bootstrap distinctID differs from an already-identified user. The existing identity is preserved. Call reset() before reinitializing if you intend to switch users.");else{var ya=this.config.get_device_id(Le()),ba=kr.bootstrap.isIdentifiedID?ya:pa;this.persistence.set_property(Zi,kr.bootstrap.isIdentifiedID?ce:ve$1),this.register({distinct_id:pa,$device_id:ba})}}if(fa)this.register_once({distinct_id:ae,$device_id:null},"");else if(!this.get_distinct_id()){var Aa=this.config.get_device_id(Le());this.register_once({distinct_id:Aa,$device_id:Aa},""),this.persistence.set_property(Zi,ve$1)}return Oe(t$a,"onpagehide"in self?"pagehide":"unload",this._handle_unload.bind(this),{passive:!1}),kr.segment?(function(ka,Ea){var Sa=ka.config.segment;if(!Sa)return Ea();(function(Ca,Ta){var Ia=Ca.config.segment;if(!Ia)return Ta();var Ra=Oa=>{var La=()=>Oa.anonymousId()||Le();Ca.config.get_device_id=La,Oa.id()&&(Ca.register({distinct_id:Oa.id(),$device_id:La()}),Ca.persistence.set_property(Zi,ce)),Ta()},ja=Ia.user();"then"in ja&&P$1(ja.then)?ja.then(Ra):Ra(ja)})(ka,(()=>{Sa.register((Ca=>{Promise&&Promise.resolve||tr.warn("This browser does not have Promise support, and can not use the segment integration");var Ta=(Ia,Ra)=>{if(!Ra)return Ia;Ia.event.userId||Ia.event.anonymousId===Ca.get_distinct_id()||(tr.info("No userId set, resetting PostHog"),Ca.reset()),Ia.event.userId&&Ia.event.userId!==Ca.get_distinct_id()&&(tr.info("UserId set, identifying with PostHog"),Ca.identify(Ia.event.userId));var ja=Ca.calculateEventProperties(Ra,Ia.event.properties);return Ia.event.properties=Object.assign({},ja,Ia.event.properties),Ia};return{name:"PostHog JS",type:"enrichment",version:"1.0.0",isLoaded:()=>!0,load:()=>Promise.resolve(),track:Ia=>Ta(Ia,Ia.event.event),page:Ia=>Ta(Ia,ge),identify:Ia=>Ta(Ia,be),screen:Ia=>Ta(Ia,"$screen")}})(ka)).then((()=>{Ea()}))}))})(this,(()=>this.qr())):this.qr(),P$1(this.config._onCapture)&&this.config._onCapture!==vn&&(yi.warn("onCapture is deprecated. Please use `before_send` instead"),this.on("eventCaptured",(ka=>this.config._onCapture(ka.event,ka)))),this.config.ip&&yi.warn('The `ip` config option has NO EFFECT AT ALL and has been deprecated. Use a custom transformation or "Discard IP data" project setting instead. See https://posthog.com/tutorials/web-redact-properties#hiding-customer-ip-address for more information.'),this}jr(Cr){var kr,Pr,Rr,Ir,Fr,Lr,qr,fa=performance.now(),pa=p$3({},Sn.__defaultExtensionClasses,this.config.__extensionClasses),ga=[];pa.featureFlags&&this.Cr.push(this.featureFlags=(kr=this.featureFlags)!==null&&kr!==void 0?kr:new pa.featureFlags(this)),pa.exceptions&&this.Cr.push(this.exceptions=(Pr=this.exceptions)!==null&&Pr!==void 0?Pr:new pa.exceptions(this)),pa.historyAutocapture&&this.Cr.push(this.historyAutocapture=new pa.historyAutocapture(this)),pa.tracingHeaders&&this.Cr.push(new pa.tracingHeaders(this)),pa.siteApps&&this.Cr.push(this.siteApps=new pa.siteApps(this)),pa.sessionRecording&&!Cr&&this.Cr.push(this.sessionRecording=new pa.sessionRecording(this)),this.config.disable_scroll_properties||ga.push((()=>{this.scrollManager.startMeasuringScrollPosition()})),pa.autocapture&&this.Cr.push(this.autocapture=new pa.autocapture(this)),pa.surveys&&this.Cr.push(this.surveys=(Rr=this.surveys)!==null&&Rr!==void 0?Rr:new pa.surveys(this)),pa.logs&&this.Cr.push(this.logs=(Ir=this.logs)!==null&&Ir!==void 0?Ir:new pa.logs(this)),pa.conversations&&this.Cr.push(this.conversations=(Fr=this.conversations)!==null&&Fr!==void 0?Fr:new pa.conversations(this)),pa.productTours&&this.Cr.push(this.productTours=new pa.productTours(this)),pa.heatmaps&&this.Cr.push(this.heatmaps=new pa.heatmaps(this)),pa.webVitalsAutocapture&&this.Cr.push(this.webVitalsAutocapture=new pa.webVitalsAutocapture(this)),pa.exceptionObserver&&this.Cr.push(this.exceptionObserver=new pa.exceptionObserver(this)),pa.deadClicksAutocapture&&this.Cr.push(this.deadClicksAutocapture=new pa.deadClicksAutocapture(this,Qe)),pa.toolbar&&this.Cr.push(this.toolbar=(Lr=this.toolbar)!==null&&Lr!==void 0?Lr:new pa.toolbar(this)),pa.experiments&&this.Cr.push(this.experiments=(qr=this.experiments)!==null&&qr!==void 0?qr:new pa.experiments(this)),this.Cr.forEach((xa=>{xa.initialize&&ga.push((()=>{xa.initialize==null||xa.initialize()}))})),ga.push((()=>{if(this.Zr){var xa=this.Zr;this.Zr=void 0,this.Ci(xa)}})),this.$r(ga,fa)}$r(Cr,kr){for(;Cr.length>0;){if(this.config.__preview_deferred_init_extensions&&performance.now()-kr>=30&&Cr.length>0)return void setTimeout((()=>{this.$r(Cr,kr)}),0);var Pr=Cr.shift();if(Pr)try{Pr()}catch(Ir){yi.error("Error initializing extension:",Ir)}}var Rr=Math.round(performance.now()-kr);this.register_for_session({$sdk_debug_extensions_init_method:this.config.__preview_deferred_init_extensions?"deferred":"synchronous",$sdk_debug_extensions_init_time_ms:Rr}),this.config.__preview_deferred_init_extensions&&yi.info("PostHog extensions initialized ("+Rr+"ms)")}Ci(Cr){var kr;if(!r$c||!r$c.body)return yi.info("document not ready yet, trying again in 500 milliseconds..."),void setTimeout((()=>{this.Ci(Cr)}),500);this.config.__preview_deferred_init_extensions&&(this.Zr=Cr),this.Vr=Cr,this.compression=void 0,Cr.supportedCompression&&!this.config.disable_compression&&(this.compression=w$1(Cr.supportedCompression,Vr.GZipJS)?Vr.GZipJS:w$1(Cr.supportedCompression,Vr.Base64)?Vr.Base64:void 0),(kr=Cr.analytics)!=null&&kr.endpoint&&(this.analyticsDefaultEndpoint=Cr.analytics.endpoint),this.set_config({person_profiles:this.Rr?this.Rr:fe}),this.Cr.forEach((Pr=>Pr.onRemoteConfig==null?void 0:Pr.onRemoteConfig(Cr)))}qr(){try{this.config.loaded(this)}catch(Pr){yi.critical("`loaded` function failed",Pr)}if(this.Hr(),this.config.internal_or_test_user_hostname&&s$d!=null&&s$d.hostname){var Cr=s$d.hostname,kr=this.config.internal_or_test_user_hostname;(typeof kr=="string"?Cr===kr:kr.test(Cr))&&this.setInternalOrTestUser()}this.config.capture_pageview&&setTimeout((()=>{(this.consent.isOptedIn()||this.Sr())&&this.zr()}),1),this.Ur=new Hr(this),this.Ur.load()}Hr(){var Cr;this.is_capturing()&&this.config.request_batching&&((Cr=this.Lr)==null||Cr.enable())}_dom_loaded(){this.is_capturing()&&we$1(this.__request_queue,(Cr=>this.Dr(Cr))),this.__request_queue=[],this.Hr()}_handle_unload(){var Cr,kr,Pr,Rr;(Cr=this.surveys)==null||Cr.handlePageUnload(),this.config.request_batching?(this.Yr()&&this.capture(me),(kr=this.logs)==null||kr.flushLogs("sendBeacon"),(Pr=this.Lr)==null||Pr.unload(),(Rr=this.Br)==null||Rr.unload()):this.Yr()&&this.capture(me,null,{transport:"sendBeacon"})}_send_request(Cr){this.__loaded&&(mn?this.__request_queue.push(Cr):this.rateLimiter.isServerRateLimited(Cr.batchKey)||(Cr.transport=Cr.transport||this.config.api_transport,Cr.url=Rs(Cr.url,{ip:this.config.ip?1:0}),Cr.headers=p$3({},this.config.request_headers,Cr.headers),Cr.compression=Cr.compression==="best-available"?this.compression:Cr.compression,Cr.disableXHRCredentials=this.config.__preview_disable_xhr_credentials,this.config.__preview_disable_beacon&&(Cr.disableTransport=["sendBeacon"]),Cr.fetchOptions=Cr.fetchOptions||this.config.fetch_options,(kr=>{var Pr,Rr,Ir,Fr=p$3({},kr);Fr.timeout=Fr.timeout||6e4,Fr.url=Is(Fr.url,Fr.compression);var Lr=(Pr=Fr.transport)!==null&&Pr!==void 0?Pr:"fetch",qr=Cs.filter((pa=>!Fr.disableTransport||!pa.transport||!Fr.disableTransport.includes(pa.transport))),fa=(Rr=(Ir=(function(pa,ga){for(var xa=0;pa.length>xa;xa++)if(pa[xa].transport===Lr)return pa[xa]})(qr))==null?void 0:Ir.method)!==null&&Rr!==void 0?Rr:qr[0].method;if(!fa)throw new Error("No available transport method");Lr!=="sendBeacon"&&Fr.data&&Fr.compression===Vr.GZipJS&&l$4&&!$s?Os(Fr).then((pa=>{fa(pa)})).catch((pa=>{if((ga=>!(!ga||typeof ga!="object")&&("name"in ga?String(ga.name):"")==="NotReadableError")(pa))return $s=!0,void fa(p$3({},Fr,{compression:void 0,url:Is(kr.url,void 0)}));fa(Fr)})):fa(Fr)})(p$3({},Cr,{callback:kr=>{var Pr,Rr;this.rateLimiter.checkForLimiting(kr),400>kr.statusCode||(Pr=(Rr=this.config).on_request_error)==null||Pr.call(Rr,kr),Cr.callback==null||Cr.callback(kr)}}))))}Dr(Cr){this.Br?this.Br.retriableRequest(Cr):this._send_request(Cr)}_execute_array(Cr){dn++;try{var kr,Pr=[],Rr=[],Ir=[];we$1(Cr,(Lr=>{Lr&&(k(kr=Lr[0])?Ir.push(Lr):P$1(Lr)?Lr.call(this):k(Lr)&&kr==="alias"?Pr.push(Lr):k(Lr)&&kr.indexOf("capture")!==-1&&P$1(this[kr])?Ir.push(Lr):Rr.push(Lr))}));var Fr=function(Lr,qr){we$1(Lr,(function(fa){if(k(fa[0])){var pa=qr;Ee(fa,(function(ga){pa=pa[ga[0]].apply(pa,ga.slice(1))}))}else qr[fa[0]].apply(qr,fa.slice(1))}))};Fr(Pr,this),Fr(Rr,this),Fr(Ir,this)}finally{dn--}}push(Cr){if(dn>0&&k(Cr)&&F(Cr[0])){var kr=Sn.prototype[Cr[0]];P$1(kr)&&kr.apply(this,Cr.slice(1))}else this._execute_array([Cr])}capture(Cr,kr,Pr){var Rr,Ir,Fr,Lr,qr;if(this.__loaded&&this.persistence&&this.sessionPersistence&&this.Lr){if(this.is_capturing())if(!C(Cr)&&F(Cr)){var fa=!this.config.opt_out_useragent_filter&&this._is_bot();if(!fa||this.config.__preview_capture_bot_pageviews){var pa=Pr!=null&&Pr.skip_client_rate_limiting?void 0:this.rateLimiter.clientRateLimitContext();if(pa==null||!pa.isRateLimited){kr!=null&&kr.$current_url&&!F(kr==null?void 0:kr.$current_url)&&(yi.error("Invalid `$current_url` property provided to `posthog.capture`. Input must be a string. Ignoring provided value."),kr==null||delete kr.$current_url),Cr!=="$exception"||Pr!=null&&Pr.Gr||yi.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically."),this.sessionPersistence.update_search_keyword(),this.config.save_campaign_params&&this.sessionPersistence.update_campaign_params(),this.config.save_referrer&&this.sessionPersistence.update_referrer_info(),(this.config.save_campaign_params||this.config.save_referrer)&&this.persistence.set_initial_person_info();var ga=new Date,xa=(Pr==null?void 0:Pr.timestamp)||ga,ya=Le(),ba={uuid:ya,event:Cr,properties:this.calculateEventProperties(Cr,kr||{},xa,ya)};Cr===ge&&this.config.__preview_capture_bot_pageviews&&fa&&(ba.event="$bot_pageview",ba.properties.$browser_type="bot"),pa&&(ba.properties.$lib_rate_limit_remaining_tokens=pa.remainingTokens),Pr!=null&&Pr.$set&&(ba.$set=Pr==null?void 0:Pr.$set);var Aa,ka=this.Wr(Pr==null?void 0:Pr.$set_once,Cr!==ye,Cr===be);if(ka&&(ba.$set_once=ka),Pr!=null&&Pr._noTruncate||(Ir=this.config.properties_string_max_length,Fr=ba,Lr=ja=>F(ja)?ja.slice(0,Ir):ja,qr=new Set,ba=(function ja(Oa,La){return Oa!==Object(Oa)?Lr?Lr(Oa):Oa:qr.has(Oa)?void 0:(qr.add(Oa),k(Oa)?(Ha=[],we$1(Oa,(Wa=>{Ha.push(ja(Wa))}))):(Ha={},Ee(Oa,((Wa,Ja)=>{qr.has(Wa)||(Ha[Ja]=ja(Wa))}))),Ha);var Ha})(Fr)),ba.timestamp=xa,C(Pr==null?void 0:Pr.timestamp)||(ba.properties.$event_time_override_provided=!0,ba.properties.$event_time_override_system_time=ga),Cr===Ar.DISMISSED||Cr===Ar.SENT){var Ea=kr==null?void 0:kr[Mr.SURVEY_ID],Sa=kr==null?void 0:kr[Mr.SURVEY_ITERATION];Aa={id:Ea,current_iteration:Sa},localStorage.getItem(rn(Aa))||localStorage.setItem(rn(Aa),"true"),ba.$set=p$3({},ba.$set,{[en({id:Ea,current_iteration:Sa},Cr===Ar.SENT?"responded":"dismissed")]:!0})}else Cr===Ar.SHOWN&&(ba.$set=p$3({},ba.$set,{[Mr.SURVEY_LAST_SEEN_DATE]:new Date().toISOString()}));if(Cr===Ur.SHOWN){var Ca=kr==null?void 0:kr[Nr.TOUR_TYPE];Ca&&(ba.$set=p$3({},ba.$set,{[Nr.TOUR_LAST_SEEN_DATE+"/"+Ca]:new Date().toISOString()}))}var Ta=p$3({},ba.properties.$set,ba.$set);if(I$1(Ta)||this.setPersonPropertiesForFlags(Ta),!D(this.config.before_send)){var Ia=this.Xr(ba);if(!Ia)return;ba=Ia}this.Tr.emit("eventCaptured",ba);var Ra={method:"POST",url:(Rr=Pr==null?void 0:Pr._url)!==null&&Rr!==void 0?Rr:this.requestRouter.endpointFor("api",this.analyticsDefaultEndpoint),data:ba,compression:"best-available",batchKey:Pr==null?void 0:Pr._batchKey};return!this.config.request_batching||Pr&&(Pr==null||!Pr._batchKey)||Pr!=null&&Pr.send_instantly?this.Dr(Ra):this.Lr.enqueue(Ra),ba}yi.critical("This capture call is ignored due to client rate limiting.")}}else yi.error("No event name provided to posthog.capture")}else yi.uninitializedWarning("posthog.capture")}_addCaptureHook(Cr){return this.on("eventCaptured",(kr=>Cr(kr.event,kr)))}calculateEventProperties(Cr,kr,Pr,Rr,Ir){if(Pr=Pr||new Date,!this.persistence||!this.sessionPersistence)return kr;var Fr=Ir?void 0:this.persistence.remove_event_timer(Cr),Lr=p$3({},kr);if(Lr.token=this.config.token,Lr.$config_defaults=this.config.defaults,this.Sr()&&(Lr.$cookieless_mode=!0),Cr==="$snapshot"){var qr=p$3({},this.persistence.properties(),this.sessionPersistence.properties());return Lr.distinct_id=qr.distinct_id,(!F(Lr.distinct_id)&&!L(Lr.distinct_id)||A(Lr.distinct_id))&&yi.error("Invalid distinct_id for replay event. This indicates a bug in your implementation"),Lr}var fa,pa=(function(Ea,Sa){var Ca,Ta,Ia,Ra;if(!u$1)return{};var ja,Oa,La,Ha,Wa,Ja,Ya,Za,Qa=Ea?[...hr,...Sa||[]]:[],[Na,Ka]=(function(Fa){for(var Va=0;Wt.length>Va;Va++){var[Da,Ba]=Wt[Va],Ga=Da.exec(Fa),Ua=Ga&&(P$1(Ba)?Ba(Ga,Fa):Ba);if(Ua)return Ua}return["",""]})(u$1);return Se(Re({$os:Na,$os_version:Ka,$browser:Ht(u$1,navigator.vendor),$device:Gt(u$1),$device_type:(Oa=u$1,La={userAgentDataPlatform:(Ca=navigator)==null||(Ca=Ca.userAgentData)==null?void 0:Ca.platform,maxTouchPoints:(Ta=navigator)==null?void 0:Ta.maxTouchPoints,screenWidth:t$a==null||(Ia=t$a.screen)==null?void 0:Ia.width,screenHeight:t$a==null||(Ra=t$a.screen)==null?void 0:Ra.height,devicePixelRatio:t$a==null?void 0:t$a.devicePixelRatio},Za=Gt(Oa),Za===st||Za===rt||Za==="Kobo"||Za==="Kindle Fire"||Za===At?et:Za===St||Za===Tt||Za===xt||Za===It?"Console":Za===ot?"Wearable":Za?Z:(La==null?void 0:La.userAgentDataPlatform)==="Android"&&((Ha=La==null?void 0:La.maxTouchPoints)!==null&&Ha!==void 0?Ha:0)>0?600>Math.min((Wa=La==null?void 0:La.screenWidth)!==null&&Wa!==void 0?Wa:0,(Ja=La==null?void 0:La.screenHeight)!==null&&Ja!==void 0?Ja:0)/((Ya=La==null?void 0:La.devicePixelRatio)!==null&&Ya!==void 0?Ya:1)?Z:et:"Desktop"),$timezone:Er(),$timezone_offset:Sr()}),{$current_url:ar(s$d==null?void 0:s$d.href,Qa,vr),$host:s$d==null?void 0:s$d.host,$pathname:s$d==null?void 0:s$d.pathname,$raw_user_agent:u$1.length>1e3?u$1.substring(0,997)+"...":u$1,$browser_version:Vt(u$1,navigator.vendor),$browser_language:gr(),$browser_language_prefix:(ja=gr(),typeof ja=="string"?ja.split("-")[0]:void 0),$screen_height:t$a==null?void 0:t$a.screen.height,$screen_width:t$a==null?void 0:t$a.screen.width,$viewport_height:t$a==null?void 0:t$a.innerHeight,$viewport_width:t$a==null?void 0:t$a.innerWidth,$lib:v$1.LIB_NAME,$lib_version:v$1.LIB_VERSION,$insert_id:Math.random().toString(36).substring(2,10)+Math.random().toString(36).substring(2,10),$time:Date.now()/1e3})})(this.config.mask_personal_data_properties,this.config.custom_personal_data_properties);if(this.sessionManager){var{sessionId:ga,windowId:xa}=this.sessionManager.checkAndGetSessionAndWindowId(Ir,Pr.getTime());Lr.$session_id=ga,Lr.$window_id=xa}this.sessionPropsManager&&Se(Lr,this.sessionPropsManager.getSessionProps());try{var ya;this.sessionRecording&&Se(Lr,this.sessionRecording.sdkDebugProperties),Lr.$sdk_debug_retry_queue_size=(ya=this.Br)==null?void 0:ya.length}catch(Ea){Lr.$sdk_debug_error_capturing_properties=String(Ea)}if(this.requestRouter.region===Js&&(Lr.$lib_custom_api_host=this.config.api_host),fa=Cr!==ge||Ir?Cr!==me||Ir?this.pageViewManager.doEvent():this.pageViewManager.doPageLeave(Pr):this.pageViewManager.doPageView(Pr,Rr),Lr=Se(Lr,fa),Cr===ge&&r$c&&(Lr.title=r$c.title),!C(Fr)){var ba=Pr.getTime()-Fr;Lr.$duration=parseFloat((ba/1e3).toFixed(3))}u$1&&this.config.opt_out_useragent_filter&&(Lr.$browser_type=this._is_bot()?"bot":"browser"),(Lr=Se({},pa,this.persistence.properties(),this.sessionPersistence.properties(),Lr)).$is_identified=this._isIdentified(),k(this.config.property_denylist)?Ee(this.config.property_denylist,(function(Ea){delete Lr[Ea]})):yi.error(_n+this.config.property_denylist+" or property_blacklist config: "+this.config.property_blacklist);var Aa=this.config.sanitize_properties;Aa&&(yi.error(pn),Lr=Aa(Lr,Cr));var ka=this.Jr();return Lr.$process_person_profile=ka,ka&&!Ir&&this.Kr("_calculate_event_properties"),Lr}Wr(Cr,kr,Pr){var Rr;if(kr===void 0&&(kr=!0),Pr===void 0&&(Pr=!1),!this.persistence||!this.Jr()||this.kr&&!Pr)return Cr;var Ir=this.persistence.get_initial_props(),Fr=(Rr=this.sessionPropsManager)==null?void 0:Rr.getSetOnceProps(),Lr=Se({},Ir,Fr||{},Cr||{}),qr=this.config.sanitize_properties;return qr&&(yi.error(pn),Lr=qr(Lr,"$set_once")),kr&&(this.kr=!0),I$1(Lr)?void 0:Lr}register(Cr,kr){var Pr;(Pr=this.persistence)==null||Pr.register(Cr,kr)}register_once(Cr,kr,Pr){var Rr;(Rr=this.persistence)==null||Rr.register_once(Cr,kr,Pr)}register_for_session(Cr){var kr;(kr=this.sessionPersistence)==null||kr.register(Cr)}unregister(Cr){var kr;(kr=this.persistence)==null||kr.unregister(Cr)}unregister_for_session(Cr){var kr;(kr=this.sessionPersistence)==null||kr.unregister(Cr)}Qr(Cr,kr){this.register({[Cr]:kr})}getFeatureFlag(Cr,kr){var Pr;return(Pr=this.featureFlags)==null?void 0:Pr.getFeatureFlag(Cr,kr)}getFeatureFlagPayload(Cr){var kr;return(kr=this.featureFlags)==null?void 0:kr.getFeatureFlagPayload(Cr)}getFeatureFlagResult(Cr,kr){var Pr;return(Pr=this.featureFlags)==null?void 0:Pr.getFeatureFlagResult(Cr,kr)}isFeatureEnabled(Cr,kr){var Pr;return(Pr=this.featureFlags)==null?void 0:Pr.isFeatureEnabled(Cr,kr)}reloadFeatureFlags(){var Cr;(Cr=this.featureFlags)==null||Cr.reloadFeatureFlags()}updateFlags(Cr,kr,Pr){var Rr;(Rr=this.featureFlags)==null||Rr.updateFlags(Cr,kr,Pr)}updateEarlyAccessFeatureEnrollment(Cr,kr,Pr){var Rr;(Rr=this.featureFlags)==null||Rr.updateEarlyAccessFeatureEnrollment(Cr,kr,Pr)}getEarlyAccessFeatures(Cr,kr,Pr){var Rr;return kr===void 0&&(kr=!1),(Rr=this.featureFlags)==null?void 0:Rr.getEarlyAccessFeatures(Cr,kr,Pr)}on(Cr,kr){return this.Tr.on(Cr,kr)}onFeatureFlags(Cr){return this.featureFlags?this.featureFlags.onFeatureFlags(Cr):(Cr([],{},{errorsLoading:!0}),()=>{})}onSurveysLoaded(Cr){return this.surveys?this.surveys.onSurveysLoaded(Cr):(Cr([],{isLoaded:!1,error:fn}),()=>{})}onSessionId(Cr){var kr,Pr;return(kr=(Pr=this.sessionManager)==null?void 0:Pr.onSessionId(Cr))!==null&&kr!==void 0?kr:()=>{}}getSurveys(Cr,kr){kr===void 0&&(kr=!1),this.surveys?this.surveys.getSurveys(Cr,kr):Cr([],{isLoaded:!1,error:fn})}getActiveMatchingSurveys(Cr,kr){kr===void 0&&(kr=!1),this.surveys?this.surveys.getActiveMatchingSurveys(Cr,kr):Cr([],{isLoaded:!1,error:fn})}renderSurvey(Cr,kr){var Pr;(Pr=this.surveys)==null||Pr.renderSurvey(Cr,kr)}displaySurvey(Cr,kr){var Pr;kr===void 0&&(kr=nn),(Pr=this.surveys)==null||Pr.displaySurvey(Cr,kr)}cancelPendingSurvey(Cr){var kr;(kr=this.surveys)==null||kr.cancelPendingSurvey(Cr)}canRenderSurvey(Cr){var kr,Pr;return(kr=(Pr=this.surveys)==null?void 0:Pr.canRenderSurvey(Cr))!==null&&kr!==void 0?kr:{visible:!1,disabledReason:fn}}canRenderSurveyAsync(Cr,kr){var Pr,Rr;return kr===void 0&&(kr=!1),(Pr=(Rr=this.surveys)==null?void 0:Rr.canRenderSurveyAsync(Cr,kr))!==null&&Pr!==void 0?Pr:Promise.resolve({visible:!1,disabledReason:fn})}tn(Cr){return!Cr||A(Cr)?(yi.critical("Unique user id has not been set in posthog.identify"),!1):Cr===ae?(yi.critical('The string "'+Cr+'" was set in posthog.identify which indicates an error. This ID is only used as a sentinel value.'),!1):!["distinct_id","distinctid"].includes(Cr.toLowerCase())&&!["undefined","null"].includes(Cr.toLowerCase())||(yi.critical('The string "'+Cr+'" was set in posthog.identify which indicates an error. This ID should be unique to the user and not a hardcoded string.'),!1)}identify(Cr,kr,Pr){if(!this.__loaded||!this.persistence)return yi.uninitializedWarning("posthog.identify");if(L(Cr)&&(Cr=Cr.toString(),yi.warn("The first argument to posthog.identify was a number, but it should be a string. It has been converted to a string.")),this.tn(Cr)&&this.Kr("posthog.identify")){var Rr=this.get_distinct_id();this.register({$user_id:Cr}),this.get_property(Ti)||this.register_once({$had_persisted_distinct_id:!0,$device_id:Rr},""),Cr!==Rr&&Cr!==this.get_property($i)&&(this.unregister($i),this.register({distinct_id:Cr}));var Ir,Fr=(this.persistence.get_property(Zi)||ve$1)===ve$1;Cr!==Rr&&Fr?(this.persistence.set_property(Zi,ce),this.setPersonPropertiesForFlags({$set:kr||{},$set_once:Pr||{}},!1),this.capture(be,{distinct_id:Cr,$anon_distinct_id:Rr},{$set:kr||{},$set_once:Pr||{}}),this.Nr=Vs(Cr,kr,Pr),(Ir=this.featureFlags)==null||Ir.setAnonymousDistinctId(Rr)):(kr||Pr)&&this.setPersonProperties(kr,Pr),Cr!==Rr&&(this.reloadFeatureFlags(),this.unregister(Ji))}}setPersonProperties(Cr,kr){if((Cr||kr)&&this.Kr("posthog.setPersonProperties")){var Pr=Vs(this.get_distinct_id(),Cr,kr);this.Nr!==Pr?(this.setPersonPropertiesForFlags({$set:Cr||{},$set_once:kr||{}},!0),this.capture("$set",{$set:Cr||{},$set_once:kr||{}}),this.Nr=Pr):yi.info("A duplicate setPersonProperties call was made with the same properties. It has been ignored.")}}group(Cr,kr,Pr){if(Cr&&kr){var Rr=this.getGroups(),Ir=Rr[Cr]!==kr;if(Ir&&this.resetGroupPropertiesForFlags(Cr),this.register({$groups:p$3({},Rr,{[Cr]:kr})}),Ir||Pr){var Fr={$group_type:Cr,$group_key:kr};Pr&&(Fr.$group_set=Pr),this.capture(ye,Fr)}Pr&&this.setGroupPropertiesForFlags({[Cr]:Pr}),Ir&&!Pr&&this.reloadFeatureFlags()}else yi.error("posthog.group requires a group type and group key")}resetGroups(){this.register({$groups:{}}),this.resetGroupPropertiesForFlags(),this.reloadFeatureFlags()}setPersonPropertiesForFlags(Cr,kr){var Pr;kr===void 0&&(kr=!0),(Pr=this.featureFlags)==null||Pr.setPersonPropertiesForFlags(Cr,kr)}resetPersonPropertiesForFlags(){var Cr;(Cr=this.featureFlags)==null||Cr.resetPersonPropertiesForFlags()}setGroupPropertiesForFlags(Cr,kr){var Pr;kr===void 0&&(kr=!0),this.Kr("posthog.setGroupPropertiesForFlags")&&((Pr=this.featureFlags)==null||Pr.setGroupPropertiesForFlags(Cr,kr))}resetGroupPropertiesForFlags(Cr){var kr;(kr=this.featureFlags)==null||kr.resetGroupPropertiesForFlags(Cr)}reset(Cr){var kr,Pr,Rr,Ir,Fr,Lr,qr,fa;if(yi.info("reset"),!this.__loaded)return yi.uninitializedWarning("posthog.reset");var pa=this.get_property(Ti);if(this.consent.reset(),(kr=this.persistence)==null||kr.clear(),(Pr=this.sessionPersistence)==null||Pr.clear(),(Rr=this.surveys)==null||Rr.reset(),(Ir=this.Ur)==null||Ir.stop(),(Fr=this.featureFlags)==null||Fr.reset(),(Lr=this.conversations)==null||Lr.reset(),(qr=this.persistence)==null||qr.set_property(Zi,ve$1),(fa=this.sessionManager)==null||fa.resetSessionId(),this.Nr=null,this.config.cookieless_mode===de)this.register_once({distinct_id:ae,$device_id:null},"");else{var ga=this.config.get_device_id(Le());this.register_once({distinct_id:ga,$device_id:Cr?ga:pa},"")}this.register({$last_posthog_reset:new Date().toISOString()},1),delete this.config.identity_distinct_id,delete this.config.identity_hash,this.reloadFeatureFlags()}setIdentity(Cr,kr){var Pr;this.config.identity_distinct_id=Cr,this.config.identity_hash=kr,this.alias(Cr),(Pr=this.conversations)==null||Pr.en()}clearIdentity(){var Cr;delete this.config.identity_distinct_id,delete this.config.identity_hash,(Cr=this.conversations)==null||Cr.rn()}get_distinct_id(){return this.get_property("distinct_id")}getGroups(){return this.get_property("$groups")||{}}get_session_id(){var Cr,kr;return(Cr=(kr=this.sessionManager)==null?void 0:kr.checkAndGetSessionAndWindowId(!0).sessionId)!==null&&Cr!==void 0?Cr:""}get_session_replay_url(Cr){if(!this.sessionManager)return"";var{sessionId:kr,sessionStartTimestamp:Pr}=this.sessionManager.checkAndGetSessionAndWindowId(!0),Rr=this.requestRouter.endpointFor("ui","/project/"+this.config.token+"/replay/"+kr);if(Cr!=null&&Cr.withTimestamp&&Pr){var Ir,Fr=(Ir=Cr.timestampLookBack)!==null&&Ir!==void 0?Ir:10;if(!Pr)return Rr;Rr+="?t="+Math.max(Math.floor((new Date().getTime()-Pr)/1e3)-Fr,0)}return Rr}alias(Cr,kr){return Cr===this.get_property(xi)?(yi.critical("Attempting to create alias for existing People user - aborting."),-2):this.Kr("posthog.alias")?(C(kr)&&(kr=this.get_distinct_id()),Cr!==kr?(this.Qr($i,Cr),this.capture("$create_alias",{alias:Cr,distinct_id:kr})):(yi.warn("alias matches current distinct_id - skipping api call."),this.identify(Cr),-1)):void 0}set_config(Cr){var kr=p$3({},this.config);if(O(Cr)){var Pr,Rr,Ir,Fr,Lr,qr,fa,pa,ga;Se(this.config,wn(Cr));var xa=this.Pr();(Pr=this.persistence)==null||Pr.update_config(this.config,kr,xa),this.sessionPersistence=this.config.persistence==="sessionStorage"||this.config.persistence==="memory"?this.persistence:new Tr(p$3({},this.config,{persistence:"sessionStorage"}),xa);var ya=this.Mr(this.config.debug);N$1(ya)&&(this.config.debug=ya),N$1(this.config.debug)&&(this.config.debug?(v$1.DEBUG=!0,He.Ut()&&He.Xt("ph_debug",!0),yi.info("set_config",{config:Cr,oldConfig:kr,newConfig:p$3({},this.config)})):(v$1.DEBUG=!1,He.Ut()&&He.Jt("ph_debug"))),(Rr=this.exceptionObserver)==null||Rr.onConfigChange(),(Ir=this.sessionRecording)==null||Ir.startIfEnabledOrStop(),(Fr=this.autocapture)==null||Fr.startIfEnabled(),(Lr=this.heatmaps)==null||Lr.startIfEnabled(),(qr=this.exceptionObserver)==null||qr.startIfEnabledOrStop(),(fa=this.deadClicksAutocapture)==null||fa.startIfEnabledOrStop(),(pa=this.surveys)==null||pa.loadIfEnabled(),this.nn(),(ga=this.externalIntegrations)==null||ga.startIfEnabledOrStop()}}_overrideSDKInfo(Cr,kr){v$1.LIB_NAME=Cr,v$1.LIB_VERSION=kr}startSessionRecording(Cr){var kr,Pr,Rr,Ir,Fr,Lr=Cr===!0,qr={sampling:Lr||!(Cr==null||!Cr.sampling),linked_flag:Lr||!(Cr==null||!Cr.linked_flag),url_trigger:Lr||!(Cr==null||!Cr.url_trigger),event_trigger:Lr||!(Cr==null||!Cr.event_trigger)};Object.values(qr).some(Boolean)&&((kr=this.sessionManager)==null||kr.checkAndGetSessionAndWindowId(),qr.sampling&&((Pr=this.sessionRecording)==null||Pr.overrideSampling()),qr.linked_flag&&((Rr=this.sessionRecording)==null||Rr.overrideLinkedFlag()),qr.url_trigger&&((Ir=this.sessionRecording)==null||Ir.overrideTrigger("url")),qr.event_trigger&&((Fr=this.sessionRecording)==null||Fr.overrideTrigger("event"))),this.set_config({disable_session_recording:!1})}stopSessionRecording(){this.set_config({disable_session_recording:!0})}sessionRecordingStarted(){var Cr;return!((Cr=this.sessionRecording)==null||!Cr.started)}captureException(Cr,kr){if(this.exceptions){var Pr=new Error("PostHog syntheticException"),Rr=this.exceptions.buildProperties(Cr,{handled:!0,syntheticException:Pr});return this.exceptions.sendExceptionEvent(p$3({},Rr,kr))}}captureLog(Cr){var kr;(kr=this.logs)==null||kr.captureLog(Cr)}get logger(){var Cr,kr;return(Cr=(kr=this.logs)==null?void 0:kr.logger)!==null&&Cr!==void 0?Cr:Sn.sn}startExceptionAutocapture(Cr){this.set_config({capture_exceptions:Cr==null||Cr})}stopExceptionAutocapture(){this.set_config({capture_exceptions:!1})}loadToolbar(Cr){var kr,Pr;return(kr=(Pr=this.toolbar)==null?void 0:Pr.loadToolbar(Cr))!==null&&kr!==void 0&&kr}get_property(Cr){var kr;return(kr=this.persistence)==null?void 0:kr.props[Cr]}getSessionProperty(Cr){var kr;return(kr=this.sessionPersistence)==null?void 0:kr.props[Cr]}toString(){var Cr,kr=(Cr=this.config.name)!==null&&Cr!==void 0?Cr:gn;return kr!==gn&&(kr=gn+"."+kr),kr}_isIdentified(){var Cr,kr;return((Cr=this.persistence)==null?void 0:Cr.get_property(Zi))===ce||((kr=this.sessionPersistence)==null?void 0:kr.get_property(Zi))===ce}Jr(){var Cr,kr;return!(this.config.person_profiles==="never"||this.config.person_profiles===fe&&!this._isIdentified()&&I$1(this.getGroups())&&((Cr=this.persistence)==null||(Cr=Cr.props)==null||!Cr[$i])&&((kr=this.persistence)==null||(kr=kr.props)==null||!kr[ne]))}Yr(){return this.config.capture_pageleave===!0||this.config.capture_pageleave==="if_capture_pageview"&&(this.config.capture_pageview===!0||this.config.capture_pageview==="history_change")}createPersonProfile(){this.Jr()||this.Kr("posthog.createPersonProfile")&&this.setPersonProperties({},{})}setInternalOrTestUser(){this.Kr("posthog.setInternalOrTestUser")&&this.setPersonProperties({$internal_or_test_user:!0})}Kr(Cr){return this.config.person_profiles==="never"?(yi.error(Cr+' was called, but process_person is set to "never". This call will be ignored.'),!1):(this.Qr(ne,!0),!0)}Pr(){if(this.config.cookieless_mode==="always")return!0;var Cr=this.consent.isOptedOut();return this.config.disable_persistence||Cr&&!(!this.config.opt_out_persistence_by_default&&this.config.cookieless_mode!==he)}nn(){var Cr,kr,Pr,Rr,Ir=this.Pr();return((Cr=this.persistence)==null?void 0:Cr.fi)!==Ir&&((Pr=this.persistence)==null||Pr.set_disabled(Ir)),((kr=this.sessionPersistence)==null?void 0:kr.fi)!==Ir&&((Rr=this.sessionPersistence)==null||Rr.set_disabled(Ir)),Ir}opt_in_capturing(Cr){var kr;if(this.config.cookieless_mode!==de){if(this.Sr()){var Pr,Rr,Ir,Fr,Lr;this.reset(!0),(Pr=this.sessionManager)==null||Pr.destroy(),(Rr=this.pageViewManager)==null||Rr.destroy(),this.sessionManager=new Bs(this),this.pageViewManager=new sr(this),this.persistence&&(this.sessionPropsManager=new Ns(this,this.sessionManager,this.persistence));var qr,fa=(Ir=(Fr=this.config.__extensionClasses)==null?void 0:Fr.sessionRecording)!==null&&Ir!==void 0?Ir:(Lr=Sn.__defaultExtensionClasses)==null?void 0:Lr.sessionRecording;fa&&(this.sessionRecording=this.Ir(this.sessionRecording,new fa(this)),this.Vr&&((qr=this.sessionRecording)==null||qr.onRemoteConfig==null||qr.onRemoteConfig(this.Vr)))}var pa,ga;this.consent.optInOut(!0),this.nn(),this.Hr(),(kr=this.sessionRecording)==null||kr.startIfEnabledOrStop(),this.config.cookieless_mode==he&&((pa=this.surveys)==null||pa.loadIfEnabled()),(C(Cr==null?void 0:Cr.captureEventName)||Cr!=null&&Cr.captureEventName)&&this.capture((ga=Cr==null?void 0:Cr.captureEventName)!==null&&ga!==void 0?ga:"$opt_in",Cr==null?void 0:Cr.captureProperties,{send_instantly:!0}),this.config.capture_pageview&&this.zr()}else yi.warn(cn$2)}opt_out_capturing(){var Cr,kr,Pr;this.config.cookieless_mode!==de?(this.config.cookieless_mode===he&&this.consent.isOptedIn()&&this.reset(!0),this.consent.optInOut(!1),this.nn(),this.config.cookieless_mode===he&&(this.register({distinct_id:ae,$device_id:null}),(Cr=this.sessionManager)==null||Cr.destroy(),(kr=this.pageViewManager)==null||kr.destroy(),this.sessionManager=void 0,this.sessionPropsManager=void 0,(Pr=this.sessionRecording)==null||Pr.stopRecording(),this.sessionRecording=void 0,this.zr())):yi.warn(cn$2)}has_opted_in_capturing(){return this.consent.isOptedIn()}has_opted_out_capturing(){return this.consent.isOptedOut()}get_explicit_consent_status(){var Cr=this.consent.consent;return Cr===1?"granted":Cr===0?"denied":"pending"}is_capturing(){return this.config.cookieless_mode===de||(this.config.cookieless_mode===he?this.consent.isRejected()||this.consent.isOptedIn():!this.has_opted_out_capturing())}clear_opt_in_out_capturing(){this.consent.reset(),this.nn()}_is_bot(){return e$n?Hs(e$n,this.config.custom_blocked_useragents):void 0}zr(){r$c&&(r$c.visibilityState==="visible"?this.Ar||(this.Ar=!0,this.capture(ge,{title:r$c.title},{send_instantly:!0}),this.Er&&(r$c.removeEventListener(pe,this.Er),this.Er=null)):this.Er||(this.Er=this.zr.bind(this),Oe(r$c,pe,this.Er)))}debug(Cr){Cr===!1?(t$a==null||t$a.console.log("You've disabled debug mode."),this.set_config({debug:!1})):(t$a==null||t$a.console.log("You're now in debug mode. All calls to PostHog will be logged in your console.\nYou can disable this with `posthog.debug(false)`."),this.set_config({debug:!0}))}ki(){var Cr,kr,Pr,Rr,Ir,Fr,Lr=this.Fr||{};return"advanced_disable_flags"in Lr?!!Lr.advanced_disable_flags:this.config.advanced_disable_flags!==!1?!!this.config.advanced_disable_flags:this.config.advanced_disable_decide===!0?(yi.warn("Config field 'advanced_disable_decide' is deprecated. Please use 'advanced_disable_flags' instead. The old field will be removed in a future major version."),!0):(Pr="advanced_disable_decide",Rr=yi,Ir=(kr="advanced_disable_flags")in(Cr=Lr)&&!D(Cr[kr]),Fr=Pr in Cr&&!D(Cr[Pr]),Ir?Cr[kr]:!!Fr&&(Rr&&Rr.warn("Config field '"+Pr+"' is deprecated. Please use '"+kr+"' instead. The old field will be removed in a future major version."),Cr[Pr]))}Xr(Cr){if(D(this.config.before_send))return Cr;var kr=k(this.config.before_send)?this.config.before_send:[this.config.before_send],Pr=Cr;for(var Rr of kr){if(Pr=Rr(Pr),D(Pr)){var Ir="Event '"+Cr.event+"' was rejected in beforeSend function";return z(Cr.event)?yi.warn(Ir+". This can cause unexpected behavior."):yi.info(Ir),null}Pr.properties&&!I$1(Pr.properties)||yi.warn("Event '"+Cr.event+"' has no properties after beforeSend function, this is likely an error.")}return Pr}getPageViewId(){var Cr;return(Cr=this.pageViewManager.ai)==null?void 0:Cr.pageViewId}captureTraceFeedback(Cr,kr){this.capture("$ai_feedback",{$ai_trace_id:String(Cr),$ai_feedback_text:kr})}captureTraceMetric(Cr,kr,Pr){this.capture("$ai_metric",{$ai_trace_id:String(Cr),$ai_metric_name:kr,$ai_metric_value:String(Pr)})}Mr(Cr){var kr=N$1(Cr)&&!Cr,Pr=He.Ut()&&He.Gt("ph_debug")==="true";return!kr&&(!!Pr||Cr)}}function xn($){return $ instanceof Element&&($.id===oe||!($.closest==null||!$.closest(".toolbar-global-fade-container")))}function Tn($){return!!$&&$.nodeType===1}function $n($,Cr){return!!$&&!!$.tagName&&$.tagName.toLowerCase()===Cr.toLowerCase()}function Rn($){return!!$&&$.nodeType===3}function kn($){return!!$&&$.nodeType===11}function Pn($){return $?E($).split(/\s+/):[]}function On($){var Cr=t$a==null?void 0:t$a.location.href;return!!(Cr&&$&&$.some((kr=>Cr.match(kr))))}function In($){var Cr="";switch(typeof $.className){case"string":Cr=$.className;break;case"object":Cr=($.className&&"baseVal"in $.className?$.className.baseVal:null)||$.getAttribute("class")||"";break;default:Cr=""}return Pn(Cr)}function Cn($){return D($)?null:E($).split(/(\s+)/).filter((Cr=>Kn(Cr))).join("").replace(/[\r\n]/g," ").replace(/[ ]+/g," ").substring(0,255)}function Fn($){var Cr="";return Bn($)&&!Hn($)&&$.childNodes&&$.childNodes.length&&Ee($.childNodes,(function(kr){var Pr;Rn(kr)&&kr.textContent&&(Cr+=(Pr=Cn(kr.textContent))!==null&&Pr!==void 0?Pr:"")})),E(Cr)}function An($){return C($.target)?$.srcElement||null:(Cr=$.target)!=null&&Cr.shadowRoot?$.composedPath()[0]||null:$.target||null;var Cr}Sn.__defaultExtensionClasses={},Sn.sn={trace:un=()=>{},debug:un,info:un,warn:un,error:un,fatal:un},(function($,Cr){for(var kr=0;Cr.length>kr;kr++)$.prototype[Cr[kr]]=$e($.prototype[Cr[kr]])})(Sn,["identify"]);var Mn=["a","button","form","input","select","textarea","label"];function Dn($,Cr){if(C(Cr))return!0;var kr,Pr=function(Ir){if(Cr.some((Fr=>Ir.matches(Fr))))return{v:!0}};for(var Rr of $)if(kr=Pr(Rr))return kr.v;return!1}function Ln($){var Cr=$.parentNode;return!(!Cr||!Tn(Cr))&&Cr}var Un=["next","previous","prev",">","<"],Nn=[".ph-no-rageclick",".ph-no-capture"],jn=$=>!$||$n($,"html")||!Tn($),zn=($,Cr)=>{if(!t$a||jn($))return{parentIsUsefulElement:!1,targetElementList:[]};for(var kr=!1,Pr=[$],Rr=$;Rr.parentNode&&!$n(Rr,"body");)if(kn(Rr.parentNode))Pr.push(Rr.parentNode.host),Rr=Rr.parentNode.host;else{var Ir=Ln(Rr);if(!Ir)break;if(Cr||Mn.indexOf(Ir.tagName.toLowerCase())>-1)kr=!0;else{var Fr=t$a.getComputedStyle(Ir);Fr&&Fr.getPropertyValue("cursor")==="pointer"&&(kr=!0)}Pr.push(Ir),Rr=Ir}return{parentIsUsefulElement:kr,targetElementList:Pr}};function Bn($){for(var Cr=$;Cr.parentNode&&!$n(Cr,"body");Cr=Cr.parentNode){var kr=In(Cr);if(w$1(kr,"ph-sensitive")||w$1(kr,"ph-no-capture"))return!1}if(w$1(In($),"ph-include"))return!0;var Pr=$.type||"";if(F(Pr))switch(Pr.toLowerCase()){case"hidden":case"password":return!1}var Rr=$.name||$.id||"";return!F(Rr)||!/^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i.test(Rr.replace(/[^a-zA-Z0-9]/g,""))}function Hn($){return!!($n($,"input")&&!["button","checkbox","submit","reset"].includes($.type)||$n($,"select")||$n($,"textarea")||$.getAttribute("contenteditable")==="true")}var qn="(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})",Vn=new RegExp("^(?:"+qn+")$"),Wn=new RegExp(qn),Gn="\\d{3}-?\\d{2}-?\\d{4}",Yn=new RegExp("^("+Gn+")$"),Jn=new RegExp("("+Gn+")");function Kn($,Cr){return Cr===void 0&&(Cr=!0),!(D($)||F($)&&($=E($),(Cr?Vn:Wn).test(($||"").replace(/[- ]/g,""))||(Cr?Yn:Jn).test($)))}function Xn($){var Cr=Fn($);return Kn(Cr=(Cr+" "+Qn($)).trim())?Cr:""}function Qn($){var Cr="";return $&&$.childNodes&&$.childNodes.length&&Ee($.childNodes,(function(kr){var Pr;if(kr&&((Pr=kr.tagName)==null?void 0:Pr.toLowerCase())==="span")try{var Rr=Fn(kr);Cr=(Cr+" "+Rr).trim(),kr.childNodes&&kr.childNodes.length&&(Cr=(Cr+" "+Qn(kr)).trim())}catch(Ir){yi.error("[AutoCapture]",Ir)}})),Cr}function Zn($){return $.replace(/"|\\"/g,'\\"')}function to($){var Cr=$.attr__class;return Cr?k(Cr)?Cr:Pn(Cr):void 0}class io{constructor(Cr){this.disabled=Cr===!1;var kr=O(Cr)?Cr:{};this.thresholdPx=kr.threshold_px||30,this.timeoutMs=kr.timeout_ms||1e3,this.clickCount=kr.click_count||3,this.clicks=[]}isRageClick(Cr,kr,Pr){if(this.disabled)return!1;var Rr=this.clicks[this.clicks.length-1];if(Rr&&Math.abs(Cr-Rr.x)+Math.abs(kr-Rr.y)<this.thresholdPx&&this.timeoutMs>Pr-Rr.timestamp){if(this.clicks.push({x:Cr,y:kr,timestamp:Pr}),this.clicks.length===this.clickCount)return!0}else this.clicks=[{x:Cr,y:kr,timestamp:Pr}];return!1}}var eo="$copy_autocapture",ro=wi("[AutoCapture]");function so($,Cr){return Cr.length>$?Cr.slice(0,$)+"...":Cr}function no($){if($.previousElementSibling)return $.previousElementSibling;var Cr=$;do Cr=Cr.previousSibling;while(Cr&&!Tn(Cr));return Cr}function oo($,Cr){for(var kr,Pr,{e:Rr,maskAllElementAttributes:Ir,maskAllText:Fr,elementAttributeIgnoreList:Lr,elementsChainAsString:qr}=Cr,fa=[$],pa=$;pa.parentNode&&!$n(pa,"body");)kn(pa.parentNode)?(fa.push(pa.parentNode.host),pa=pa.parentNode.host):(fa.push(pa.parentNode),pa=pa.parentNode);var ga,xa,ya=[],ba={},Aa=!1,ka=!1;if(Ee(fa,(Ia=>{var Ra=Bn(Ia);Ia.tagName.toLowerCase()==="a"&&(Aa=Ia.getAttribute("href"),Aa=Ra&&Aa&&Kn(Aa)&&Aa),w$1(In(Ia),"ph-no-capture")&&(ka=!0),ya.push((function(Oa,La,Ha,Wa){var Ja=Oa.tagName.toLowerCase(),Ya={tag_name:Ja};Mn.indexOf(Ja)>-1&&!Ha&&(Ya.$el_text=Ja.toLowerCase()==="a"||Ja.toLowerCase()==="button"?so(1024,Xn(Oa)):so(1024,Fn(Oa)));var Za=In(Oa);Za.length>0&&(Ya.classes=Za.filter((function(Fa){return Fa!==""}))),Ee(Oa.attributes,(function(Fa){var Va;if((!Hn(Oa)||["name","id","class","aria-label"].indexOf(Fa.name)!==-1)&&(Wa==null||!Wa.includes(Fa.name))&&!La&&Kn(Fa.value)&&(!F(Va=Fa.name)||Va.substring(0,10)!=="_ngcontent"&&Va.substring(0,7)!=="_nghost")){var Da=Fa.value;Fa.name==="class"&&(Da=Pn(Da).join(" ")),Ya["attr__"+Fa.name]=so(1024,Da)}}));for(var Qa=1,Na=1,Ka=Oa;Ka=no(Ka);)Qa++,Ka.tagName===Oa.tagName&&Na++;return Ya.nth_child=Qa,Ya.nth_of_type=Na,Ya})(Ia,Ir,Fr,Lr));var ja=(function(Oa){if(!Bn(Oa))return{};var La={};return Ee(Oa.attributes,(function(Ha){if(Ha.name&&Ha.name.indexOf("data-ph-capture-attribute")===0){var Wa=Ha.name.replace("data-ph-capture-attribute-",""),Ja=Ha.value;Wa&&Ja&&Kn(Ja)&&(La[Wa]=Ja)}})),La})(Ia);Se(ba,ja)})),ka)return{props:{},explicitNoCapture:ka};if(Fr||(ya[0].$el_text=$.tagName.toLowerCase()==="a"||$.tagName.toLowerCase()==="button"?Xn($):Fn($)),Aa){var Ea,Sa;ya[0].attr__href=Aa;var Ca=(Ea=nr(Aa))==null?void 0:Ea.host,Ta=t$a==null||(Sa=t$a.location)==null?void 0:Sa.host;Ca&&Ta&&Ca!==Ta&&(ga=Aa)}return{props:Se({$event_type:Rr.type,$ce_version:1},qr?{}:{$elements:ya},{$elements_chain:(xa=ya,(function(Ia){return Ia.map((Ra=>{var ja,Oa,La="";if(Ra.tag_name&&(La+=Ra.tag_name),Ra.attr_class)for(var Ha of(Ra.attr_class.sort(),Ra.attr_class))La+="."+Ha.replace(/"/g,"");var Wa=p$3({},Ra.text?{text:Ra.text}:{},{"nth-child":(ja=Ra.nth_child)!==null&&ja!==void 0?ja:0,"nth-of-type":(Oa=Ra.nth_of_type)!==null&&Oa!==void 0?Oa:0},Ra.href?{href:Ra.href}:{},Ra.attr_id?{attr_id:Ra.attr_id}:{},Ra.attributes),Ja={};return xe(Wa).sort(((Ya,Za)=>{var[Qa]=Ya,[Na]=Za;return Qa.localeCompare(Na)})).forEach((Ya=>{var[Za,Qa]=Ya;return Ja[Zn(Za.toString())]=Zn(Qa.toString())})),(La+=":")+xe(Ja).map((Ya=>{var[Za,Qa]=Ya;return Za+'="'+Qa+'"'})).join("")})).join(";")})((function(Ia){return Ia.map((Ra=>{var ja,Oa,La={text:(ja=Ra.$el_text)==null?void 0:ja.slice(0,400),tag_name:Ra.tag_name,href:(Oa=Ra.attr__href)==null?void 0:Oa.slice(0,2048),attr_class:to(Ra),attr_id:Ra.attr__id,nth_child:Ra.nth_child,nth_of_type:Ra.nth_of_type,attributes:{}};return xe(Ra).filter((Ha=>{var[Wa]=Ha;return Wa.indexOf("attr__")===0})).forEach((Ha=>{var[Wa,Ja]=Ha;return La.attributes[Wa]=Ja})),La}))})(xa)))},(kr=ya[0])!=null&&kr.$el_text?{$el_text:(Pr=ya[0])==null?void 0:Pr.$el_text}:{},ga&&Rr.type==="click"?{$external_click_url:ga}:{},ba)}}var ao=wi("[ExceptionAutocapture]");function lo($,Cr,kr){try{if(!(Cr in $))return()=>{};var Pr=$[Cr],Rr=kr(Pr);return P$1(Rr)&&(Rr.prototype=Rr.prototype||{},Object.defineProperties(Rr,{__posthog_wrapped__:{enumerable:!1,value:!0}})),$[Cr]=Rr,()=>{$[Cr]=Pr}}catch{return()=>{}}}var uo=wi("[TracingHeaders]"),ho=wi("[Web Vitals]"),vo=9e5,co="disabled",fo="lazy_loading",po="awaiting_config",_o="missing_config";wi("[SessionRecording]"),wi("[SessionRecording]");var go="[SessionRecording]",mo=wi(go),bo=wi("[Heatmaps]");function yo($){return O($)&&"clientX"in $&&"clientY"in $&&L($.clientX)&&L($.clientY)}var wo=wi("[Product Tours]"),Eo=["$set_once","$set"],So=wi("[SiteApps]"),xo="Error while initializing PostHog app with config id ";function To($,Cr,kr){if(D($))return!1;switch(kr){case"exact":return $===Cr;case"contains":var Pr=Cr.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/_/g,".").replace(/%/g,".*");return new RegExp(Pr,"i").test($);case"regex":try{return new RegExp(Cr).test($)}catch{return!1}default:return!1}}class $o{constructor(Cr){this.an=new js,this.ln=(kr,Pr)=>this.un(kr,Pr)&&this.hn(kr,Pr)&&this.cn(kr,Pr)&&this.dn(kr,Pr),this.un=(kr,Pr)=>Pr==null||!Pr.event||(kr==null?void 0:kr.event)===(Pr==null?void 0:Pr.event),this._instance=Cr,this.vn=new Set,this.fn=new Set}init(){var Cr,kr;C((Cr=this._instance)==null?void 0:Cr._addCaptureHook)||(kr=this._instance)==null||kr._addCaptureHook(((Pr,Rr)=>{this.on(Pr,Rr)}))}register(Cr){var kr,Pr;if(!C((kr=this._instance)==null?void 0:kr._addCaptureHook)&&(Cr.forEach((Fr=>{var Lr,qr;(Lr=this.fn)==null||Lr.add(Fr),(qr=Fr.steps)==null||qr.forEach((fa=>{var pa;(pa=this.vn)==null||pa.add((fa==null?void 0:fa.event)||"")}))})),(Pr=this._instance)!=null&&Pr.autocapture)){var Rr,Ir=new Set;Cr.forEach((Fr=>{var Lr;(Lr=Fr.steps)==null||Lr.forEach((qr=>{qr!=null&&qr.selector&&Ir.add(qr==null?void 0:qr.selector)}))})),(Rr=this._instance)==null||Rr.autocapture.setElementSelectors(Ir)}}on(Cr,kr){var Pr;kr!=null&&Cr.length!=0&&(this.vn.has(Cr)||this.vn.has(kr==null?void 0:kr.event))&&this.fn&&((Pr=this.fn)==null?void 0:Pr.size)>0&&this.fn.forEach((Rr=>{this.pn(kr,Rr)&&this.an.emit("actionCaptured",Rr.name)}))}gn(Cr){this.onAction("actionCaptured",(kr=>Cr(kr)))}pn(Cr,kr){if((kr==null?void 0:kr.steps)==null)return!1;for(var Pr of kr.steps)if(this.ln(Cr,Pr))return!0;return!1}onAction(Cr,kr){return this.an.on(Cr,kr)}hn(Cr,kr){if(kr!=null&&kr.url){var Pr,Rr=Cr==null||(Pr=Cr.properties)==null?void 0:Pr.$current_url;if(!Rr||typeof Rr!="string"||!To(Rr,kr.url,kr.url_matching||"contains"))return!1}return!0}cn(Cr,kr){return!!this.mn(Cr,kr)&&!!this.yn(Cr,kr)&&!!this.bn(Cr,kr)}mn(Cr,kr){var Pr;if(kr==null||!kr.href)return!0;var Rr=this.wn(Cr);if(Rr.length>0)return Rr.some((Lr=>To(Lr.href,kr.href,kr.href_matching||"exact")));var Ir,Fr=(Cr==null||(Pr=Cr.properties)==null?void 0:Pr.$elements_chain)||"";return!!Fr&&To((Ir=Fr.match(/(?::|")href="(.*?)"/))?Ir[1]:"",kr.href,kr.href_matching||"exact")}yn(Cr,kr){var Pr;if(kr==null||!kr.text)return!0;var Rr=this.wn(Cr);if(Rr.length>0)return Rr.some((fa=>To(fa.text,kr.text,kr.text_matching||"exact")||To(fa.$el_text,kr.text,kr.text_matching||"exact")));var Ir,Fr,Lr,qr=(Cr==null||(Pr=Cr.properties)==null?void 0:Pr.$elements_chain)||"";return!!qr&&(Ir=(function(fa){for(var pa,ga=[],xa=/(?::|")text="(.*?)"/g;!D(pa=xa.exec(fa));)ga.includes(pa[1])||ga.push(pa[1]);return ga})(qr),Fr=kr.text,Lr=kr.text_matching||"exact",Ir.some((fa=>To(fa,Fr,Lr))))}bn(Cr,kr){var Pr,Rr;if(kr==null||!kr.selector)return!0;var Ir=Cr==null||(Pr=Cr.properties)==null?void 0:Pr.$element_selectors;if(Ir!=null&&Ir.includes(kr.selector))return!0;var Fr=(Cr==null||(Rr=Cr.properties)==null?void 0:Rr.$elements_chain)||"";if(kr.selector_regex&&Fr)try{return new RegExp(kr.selector_regex).test(Fr)}catch{return!1}return!1}wn(Cr){var kr;return(Cr==null||(kr=Cr.properties)==null?void 0:kr.$elements)==null?[]:Cr==null?void 0:Cr.properties.$elements}dn(Cr,kr){return kr==null||!kr.properties||kr.properties.length===0||Ys(kr.properties.reduce(((Pr,Rr)=>{var Ir=k(Rr.value)?Rr.value.map(String):Rr.value!=null?[String(Rr.value)]:[];return Pr[Rr.key]={values:Ir,operator:Rr.operator||"exact"},Pr}),{}),Cr==null?void 0:Cr.properties)}}class Ro{constructor(Cr){this._instance=Cr,this._n=new Map,this.In=new Map,this.Cn=new Map}Sn(Cr,kr){return!!Cr&&Ys(Cr.propertyFilters,kr==null?void 0:kr.properties)}kn(Cr,kr){var Pr=new Map;return Cr.forEach((Rr=>{var Ir;(Ir=Rr.conditions)==null||(Ir=Ir[kr])==null||(Ir=Ir.values)==null||Ir.forEach((Fr=>{if(Fr!=null&&Fr.name){var Lr=Pr.get(Fr.name)||[];Lr.push(Rr.id),Pr.set(Fr.name,Lr)}}))})),Pr}xn(Cr,kr,Pr){var Rr=(Pr===$r.Activation?this._n:this.In).get(Cr),Ir=[];return this.Tn((Fr=>{Ir=Fr.filter((Lr=>Rr==null?void 0:Rr.includes(Lr.id)))})),Ir.filter((Fr=>{var Lr,qr=(Lr=Fr.conditions)==null||(Lr=Lr[Pr])==null||(Lr=Lr.values)==null?void 0:Lr.find((fa=>fa.name===Cr));return this.Sn(qr,kr)}))}register(Cr){var kr;C((kr=this._instance)==null?void 0:kr._addCaptureHook)||(this.An(Cr),this.En(Cr))}En(Cr){var kr=Cr.filter((Pr=>{var Rr,Ir;return((Rr=Pr.conditions)==null?void 0:Rr.actions)&&((Ir=Pr.conditions)==null||(Ir=Ir.actions)==null||(Ir=Ir.values)==null?void 0:Ir.length)>0}));kr.length!==0&&(this.Rn==null&&(this.Rn=new $o(this._instance),this.Rn.init(),this.Rn.gn((Pr=>{this.onAction(Pr)}))),kr.forEach((Pr=>{var Rr,Ir,Fr,Lr,qr;Pr.conditions&&(Rr=Pr.conditions)!=null&&Rr.actions&&(Ir=Pr.conditions)!=null&&(Ir=Ir.actions)!=null&&Ir.values&&((Fr=Pr.conditions)==null||(Fr=Fr.actions)==null||(Fr=Fr.values)==null?void 0:Fr.length)>0&&((Lr=this.Rn)==null||Lr.register(Pr.conditions.actions.values),(qr=Pr.conditions)==null||(qr=qr.actions)==null||(qr=qr.values)==null||qr.forEach((fa=>{if(fa&&fa.name){var pa=this.Cn.get(fa.name);pa&&pa.push(Pr.id),this.Cn.set(fa.name,pa||[Pr.id])}})))})))}An(Cr){var kr,Pr=Cr.filter((Ir=>{var Fr,Lr;return((Fr=Ir.conditions)==null?void 0:Fr.events)&&((Lr=Ir.conditions)==null||(Lr=Lr.events)==null||(Lr=Lr.values)==null?void 0:Lr.length)>0})),Rr=Cr.filter((Ir=>{var Fr,Lr;return((Fr=Ir.conditions)==null?void 0:Fr.cancelEvents)&&((Lr=Ir.conditions)==null||(Lr=Lr.cancelEvents)==null||(Lr=Lr.values)==null?void 0:Lr.length)>0}));Pr.length===0&&Rr.length===0||((kr=this._instance)==null||kr._addCaptureHook(((Ir,Fr)=>{this.onEvent(Ir,Fr)})),this._n=this.kn(Cr,$r.Activation),this.In=this.kn(Cr,$r.Cancellation))}onEvent(Cr,kr){var Pr,Rr=this.re(),Ir=this.Nn(),Fr=this.Mn(),Lr=((Pr=this._instance)==null||(Pr=Pr.persistence)==null?void 0:Pr.props[Ir])||[];if(Fr===Cr&&kr&&Lr.length>0){var qr,fa;Rr.info("event matched, removing item from activated items",{event:Cr,eventPayload:kr,existingActivatedItems:Lr});var pa=(kr==null||(qr=kr.properties)==null?void 0:qr.$survey_id)||(kr==null||(fa=kr.properties)==null?void 0:fa.$product_tour_id);if(pa){var ga=Lr.indexOf(pa);0>ga||(Lr.splice(ga,1),this.Fn(Lr))}}else{if(this.In.has(Cr)){var xa=this.xn(Cr,kr,$r.Cancellation);xa.length>0&&(Rr.info("cancel event matched, cancelling items",{event:Cr,itemsToCancel:xa.map((ba=>ba.id))}),xa.forEach((ba=>{var Aa=Lr.indexOf(ba.id);0>Aa||Lr.splice(Aa,1),this.On(ba.id)})),this.Fn(Lr))}if(this._n.has(Cr)){Rr.info("event name matched",{event:Cr,eventPayload:kr,items:this._n.get(Cr)});var ya=this.xn(Cr,kr,$r.Activation);this.Fn(Lr.concat(ya.map((ba=>ba.id))||[]))}}}onAction(Cr){var kr,Pr=this.Nn(),Rr=((kr=this._instance)==null||(kr=kr.persistence)==null?void 0:kr.props[Pr])||[];this.Cn.has(Cr)&&this.Fn(Rr.concat(this.Cn.get(Cr)||[]))}Fn(Cr){var kr,Pr=this.re(),Rr=this.Nn(),Ir=[...new Set(Cr)].filter((Fr=>!this.Pn(Fr)));Pr.info("updating activated items",{activatedItems:Ir}),(kr=this._instance)==null||(kr=kr.persistence)==null||kr.register({[Rr]:Ir})}getActivatedIds(){var Cr,kr=this.Nn();return((Cr=this._instance)==null||(Cr=Cr.persistence)==null?void 0:Cr.props[kr])||[]}getEventToItemsMap(){return this._n}Ln(){return this.Rn}}class ko extends Ro{constructor(Cr){super(Cr)}Nn(){return"$surveys_activated"}Mn(){return Ar.SHOWN}Tn(Cr){var kr;(kr=this._instance)==null||kr.getSurveys(Cr)}On(Cr){var kr;(kr=this._instance)==null||kr.cancelPendingSurvey(Cr)}re(){return Zs}Pn(){return!1}getSurveys(){return this.getActivatedIds()}getEventToSurveys(){return this.getEventToItemsMap()}}var Po="SDK is not enabled or survey functionality is not yet loaded",Oo="Disabled. Not loading surveys.",Io=t$a!=null&&t$a.location?lr(t$a.location.hash,"__posthog")||lr(location.hash,"state"):null,Co="_postHogToolbarParams",Fo=wi("[Toolbar]"),Ao=wi("[FeatureFlags]"),Mo=wi("[FeatureFlags]",{debugEnabled:!0}),Do=`" failed. Feature flags didn't load in time.`,Lo="$active_feature_flags",Uo="$override_feature_flags",No="$feature_flag_request_id",jo=$=>{for(var Cr={},kr=0;$.length>kr;kr++)Cr[$[kr]]=!0;return Cr},zo=$=>{var Cr={};for(var[kr,Pr]of xe($||{}))Pr&&(Cr[kr]=Pr);return Cr},Bo=wi("[Error tracking]"),Ho="Refusing to render web experiment since the viewer is a likely bot",qo={icontains:($,Cr)=>!!t$a&&Cr.href.toLowerCase().indexOf($.toLowerCase())>-1,not_icontains:($,Cr)=>!!t$a&&Cr.href.toLowerCase().indexOf($.toLowerCase())===-1,regex:($,Cr)=>!!t$a&&qs(Cr.href,$),not_regex:($,Cr)=>!!t$a&&!qs(Cr.href,$),exact:($,Cr)=>Cr.href===$,is_not:($,Cr)=>Cr.href!==$};class Vo{get Rt(){return this._instance.config}constructor(Cr){var kr=this;this.getWebExperimentsAndEvaluateDisplayLogic=function(Pr){Pr===void 0&&(Pr=!1),kr.getWebExperiments((Rr=>{Vo.Dn("retrieved web experiments from the server"),kr.Bn=new Map,Rr.forEach((Ir=>{if(Ir.feature_flag_key){var Fr;kr.Bn&&(Vo.Dn("setting flag key ",Ir.feature_flag_key," to web experiment ",Ir),(Fr=kr.Bn)==null||Fr.set(Ir.feature_flag_key,Ir));var Lr=kr._instance.getFeatureFlag(Ir.feature_flag_key);F(Lr)&&Ir.variants[Lr]&&kr.jn(Ir.name,Lr,Ir.variants[Lr].transforms)}else if(Ir.variants)for(var qr in Ir.variants){var fa=Ir.variants[qr];Vo.qn(fa)&&kr.jn(Ir.name,qr,fa.transforms)}}))}),Pr)},this._instance=Cr,this._instance.onFeatureFlags((Pr=>{this.onFeatureFlags(Pr)}))}initialize(){}onFeatureFlags(Cr){if(this._is_bot())Vo.Dn(Ho);else if(!this.Rt.disable_web_experiments){if(D(this.Bn))return this.Bn=new Map,this.loadIfEnabled(),void this.previewWebExperiment();Vo.Dn("applying feature flags",Cr),Cr.forEach((kr=>{var Pr;if(this.Bn&&(Pr=this.Bn)!=null&&Pr.has(kr)){var Rr,Ir=this._instance.getFeatureFlag(kr),Fr=(Rr=this.Bn)==null?void 0:Rr.get(kr);Ir&&Fr!=null&&Fr.variants[Ir]&&this.jn(Fr.name,Ir,Fr.variants[Ir].transforms)}}))}}previewWebExperiment(){var Cr=Vo.getWindowLocation();if(Cr!=null&&Cr.search){var kr=or(Cr==null?void 0:Cr.search,"__experiment_id"),Pr=or(Cr==null?void 0:Cr.search,"__experiment_variant");kr&&Pr&&(Vo.Dn("previewing web experiments "+kr+" && "+Pr),this.getWebExperiments((Rr=>{this.Zn(parseInt(kr),Pr,Rr)}),!1,!0))}}loadIfEnabled(){this.Rt.disable_web_experiments||this.getWebExperimentsAndEvaluateDisplayLogic()}getWebExperiments(Cr,kr,Pr){if(this.Rt.disable_web_experiments&&!Pr)return Cr([]);var Rr=this._instance.get_property("$web_experiments");if(Rr&&!kr)return Cr(Rr);this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/web_experiments/?token="+this.Rt.token),method:"GET",callback:Ir=>Cr(Ir.statusCode===200&&Ir.json&&Ir.json.experiments||[])})}Zn(Cr,kr,Pr){var Rr=Pr.filter((Ir=>Ir.id===Cr));Rr&&Rr.length>0&&(Vo.Dn("Previewing web experiment ["+Rr[0].name+"] with variant ["+kr+"]"),this.jn(Rr[0].name,kr,Rr[0].variants[kr].transforms))}static qn(Cr){return!D(Cr.conditions)&&Vo.$n(Cr)&&Vo.Vn(Cr)}static $n(Cr){var kr;if(D(Cr.conditions)||D((kr=Cr.conditions)==null?void 0:kr.url))return!0;var Pr,Rr,Ir,Fr=Vo.getWindowLocation();return!!Fr&&((Pr=Cr.conditions)==null||!Pr.url||qo[(Rr=(Ir=Cr.conditions)==null?void 0:Ir.urlMatchType)!==null&&Rr!==void 0?Rr:"icontains"](Cr.conditions.url,Fr))}static getWindowLocation(){return t$a==null?void 0:t$a.location}static Vn(Cr){var kr;if(D(Cr.conditions)||D((kr=Cr.conditions)==null?void 0:kr.utm))return!0;var Pr=fr$1();if(Pr.utm_source){var Rr,Ir,Fr,Lr,qr,fa,pa,ga,xa=(Rr=Cr.conditions)==null||(Rr=Rr.utm)==null||!Rr.utm_campaign||((Ir=Cr.conditions)==null||(Ir=Ir.utm)==null?void 0:Ir.utm_campaign)==Pr.utm_campaign,ya=(Fr=Cr.conditions)==null||(Fr=Fr.utm)==null||!Fr.utm_source||((Lr=Cr.conditions)==null||(Lr=Lr.utm)==null?void 0:Lr.utm_source)==Pr.utm_source,ba=(qr=Cr.conditions)==null||(qr=qr.utm)==null||!qr.utm_medium||((fa=Cr.conditions)==null||(fa=fa.utm)==null?void 0:fa.utm_medium)==Pr.utm_medium,Aa=(pa=Cr.conditions)==null||(pa=pa.utm)==null||!pa.utm_term||((ga=Cr.conditions)==null||(ga=ga.utm)==null?void 0:ga.utm_term)==Pr.utm_term;return xa&&ba&&Aa&&ya}return!1}static Dn(Cr){for(var kr=arguments.length,Pr=new Array(kr>1?kr-1:0),Rr=1;kr>Rr;Rr++)Pr[Rr-1]=arguments[Rr];yi.info("[WebExperiments] "+Cr,Pr)}jn(Cr,kr,Pr){this._is_bot()?Vo.Dn(Ho):kr!=="control"?Pr.forEach((Rr=>{if(Rr.selector){var Ir;Vo.Dn("applying transform of variant "+kr+" for experiment "+Cr+" ",Rr);var Fr=(Ir=document)==null?void 0:Ir.querySelectorAll(Rr.selector);Fr==null||Fr.forEach((Lr=>{var qr=Lr;Rr.html&&(qr.innerHTML=Rr.html),Rr.css&&qr.setAttribute("style",Rr.css)}))}})):Vo.Dn("Control variants leave the page unmodified.")}_is_bot(){return e$n&&this._instance?Hs(e$n,this.Rt.custom_blocked_useragents):void 0}}var Wo=wi("[Conversations]"),Go="Conversations not available yet.",Yo={trace:{text:"TRACE",number:1},debug:{text:"DEBUG",number:5},info:{text:"INFO",number:9},warn:{text:"WARN",number:13},error:{text:"ERROR",number:17},fatal:{text:"FATAL",number:21}},Jo=Yo.info;function Ko($){if(N$1($))return{boolValue:$};if(L($))return Number.isInteger($)?{intValue:$}:{doubleValue:$};if(typeof $=="string")return{stringValue:$};if(k($))return{arrayValue:{values:$.map((Cr=>Ko(Cr)))}};try{return{stringValue:JSON.stringify($)}}catch{return{stringValue:String($)}}}function Xo($){var Cr=[];for(var kr in $){var Pr=$[kr];M$1(Pr)||C(Pr)||Cr.push({key:kr,value:Ko(Pr)})}return Cr}var Qo={featureFlags:class{constructor($){this.Hn=!1,this.zn=!1,this.Un=!1,this.Yn=!1,this.Gn=!1,this.Wn=!1,this.Xn=!1,this.Jn=!1,this._instance=$,this.featureFlagEventHandlers=[]}get Rt(){return this._instance.config}get Xi(){return this._instance.persistence}Kn($){return this._instance.get_property($)}Qn(){var $,Cr;return($=(Cr=this.Xi)==null?void 0:Cr.pi(this.Rt.feature_flag_cache_ttl_ms))!==null&&$!==void 0&&$}ts(){return!!this.Qn()&&(this.Jn||this.Un||(this.Jn=!0,Ao.warn("Feature flag cache is stale, triggering refresh..."),this.reloadFeatureFlags()),!0)}es(){var $,Cr=($=this.Rt.evaluation_contexts)!==null&&$!==void 0?$:this.Rt.evaluation_environments;return!this.Rt.evaluation_environments||this.Rt.evaluation_contexts||this.Xn||(Ao.warn("evaluation_environments is deprecated. Use evaluation_contexts instead. evaluation_environments will be removed in a future version."),this.Xn=!0),Cr!=null&&Cr.length?Cr.filter((kr=>{var Pr=kr&&typeof kr=="string"&&kr.trim().length>0;return Pr||Ao.error("Invalid evaluation context found:",kr,"Expected non-empty string"),Pr})):[]}rs(){return this.es().length>0}initialize(){var $,Cr,{config:kr}=this._instance,Pr=($=(Cr=kr.bootstrap)==null?void 0:Cr.featureFlags)!==null&&$!==void 0?$:{};if(Object.keys(Pr).length){var Rr,Ir,Fr=(Rr=(Ir=kr.bootstrap)==null?void 0:Ir.featureFlagPayloads)!==null&&Rr!==void 0?Rr:{},Lr=Object.keys(Pr).filter((fa=>!!Pr[fa])).reduce(((fa,pa)=>(fa[pa]=Pr[pa]||!1,fa)),{}),qr=Object.keys(Fr).filter((fa=>Lr[fa])).reduce(((fa,pa)=>(Fr[pa]&&(fa[pa]=Fr[pa]),fa)),{});this.receivedFeatureFlags({featureFlags:Lr,featureFlagPayloads:qr})}}updateFlags($,Cr,kr){var Pr=kr!=null&&kr.merge?this.getFlagVariants():{},Rr=kr!=null&&kr.merge?this.getFlagPayloads():{},Ir=p$3({},Pr,$),Fr=p$3({},Rr,Cr),Lr={};for(var[qr,fa]of Object.entries(Ir)){var pa=typeof fa=="string";Lr[qr]={key:qr,enabled:!!pa||!!fa,variant:pa?fa:void 0,reason:void 0,metadata:C(Fr==null?void 0:Fr[qr])?void 0:{id:0,version:void 0,description:void 0,payload:Fr[qr]}}}this.receivedFeatureFlags({flags:Lr})}get hasLoadedFlags(){return this.zn}getFlags(){return Object.keys(this.getFlagVariants())}getFlagsWithDetails(){var $=this.Kn(Bi),Cr=this.Kn(Uo),kr=this.Kn(qi);if(!kr&&!Cr)return $||{};var Pr=Se({},$||{}),Rr=[...new Set([...Object.keys(kr||{}),...Object.keys(Cr||{})])];for(var Ir of Rr){var Fr,Lr,qr=Pr[Ir],fa=Cr==null?void 0:Cr[Ir],pa=C(fa)?(Fr=qr==null?void 0:qr.enabled)!==null&&Fr!==void 0&&Fr:!!fa,ga=C(fa)?qr.variant:typeof fa=="string"?fa:void 0,xa=kr==null?void 0:kr[Ir],ya=p$3({},qr,{enabled:pa,variant:pa?ga??(qr==null?void 0:qr.variant):void 0});pa!==(qr==null?void 0:qr.enabled)&&(ya.original_enabled=qr==null?void 0:qr.enabled),ga!==(qr==null?void 0:qr.variant)&&(ya.original_variant=qr==null?void 0:qr.variant),xa&&(ya.metadata=p$3({},qr==null?void 0:qr.metadata,{payload:xa,original_payload:qr==null||(Lr=qr.metadata)==null?void 0:Lr.payload})),Pr[Ir]=ya}return this.Hn||(Ao.warn(" Overriding feature flag details!",{flagDetails:$,overriddenPayloads:kr,finalDetails:Pr}),this.Hn=!0),Pr}getFlagVariants(){var $=this.Kn(ji),Cr=this.Kn(Uo);if(!Cr)return $||{};for(var kr=Se({},$),Pr=Object.keys(Cr),Rr=0;Pr.length>Rr;Rr++)kr[Pr[Rr]]=Cr[Pr[Rr]];return this.Hn||(Ao.warn(" Overriding feature flags!",{enabledFlags:$,overriddenFlags:Cr,finalFlags:kr}),this.Hn=!0),kr}getFlagPayloads(){var $=this.Kn(Hi),Cr=this.Kn(qi);if(!Cr)return $||{};for(var kr=Se({},$||{}),Pr=Object.keys(Cr),Rr=0;Pr.length>Rr;Rr++)kr[Pr[Rr]]=Cr[Pr[Rr]];return this.Hn||(Ao.warn(" Overriding feature flag payloads!",{flagPayloads:$,overriddenPayloads:Cr,finalPayloads:kr}),this.Hn=!0),kr}reloadFeatureFlags(){this.Yn||this.Rt.advanced_disable_feature_flags||this.ns||(this._instance.Tr.emit("featureFlagsReloading",!0),this.ns=setTimeout((()=>{this.ss()}),5))}os(){clearTimeout(this.ns),this.ns=void 0}ensureFlagsLoaded(){this.zn||this.Un||this.ns||this.reloadFeatureFlags()}setAnonymousDistinctId($){this.$anon_distinct_id=$}setReloadingPaused($){this.Yn=$}ss($){var Cr;if(this.os(),!this._instance.ki())if(this.Un)this.Gn=!0;else{var kr=this.Rt.token,Pr=this.Kn(Ti),Rr={token:kr,distinct_id:this._instance.get_distinct_id(),groups:this._instance.getGroups(),$anon_distinct_id:this.$anon_distinct_id,person_properties:p$3({},((Cr=this.Xi)==null?void 0:Cr.get_initial_props())||{},this.Kn(Vi)||{}),group_properties:this.Kn(Wi),timezone:Er()};M$1(Pr)||C(Pr)||(Rr.$device_id=Pr),($!=null&&$.disableFlags||this.Rt.advanced_disable_feature_flags)&&(Rr.disable_flags=!0),this.rs()&&(Rr.evaluation_contexts=this.es());var Ir=this._instance.requestRouter.endpointFor("flags","/flags/?v=2"+(this.Rt.advanced_only_evaluate_survey_feature_flags?"&only_evaluate_survey_feature_flags=true":""));this.Un=!0,this._instance._send_request({method:"POST",url:Ir,data:Rr,compression:this.Rt.disable_compression?void 0:Vr.Base64,timeout:this.Rt.feature_flag_request_timeout_ms,callback:Fr=>{var Lr,qr,fa,pa=!0;if(Fr.statusCode===200&&(this.Gn||(this.$anon_distinct_id=void 0),pa=!1),this.Un=!1,!Rr.disable_flags||this.Gn){this.Wn=!pa;var ga=[];Fr.error?Fr.error instanceof Error?ga.push(Fr.error.name==="AbortError"?"timeout":"connection_error"):ga.push("unknown_error"):Fr.statusCode!==200&&ga.push("api_error_"+Fr.statusCode),(Lr=Fr.json)!=null&&Lr.errorsWhileComputingFlags&&ga.push("errors_while_computing_flags");var xa,ya=!((qr=Fr.json)==null||(qr=qr.quotaLimited)==null||!qr.includes("feature_flags"));ya&&ga.push("quota_limited"),(fa=this.Xi)==null||fa.register({[Xi]:ga}),ya?Ao.warn("You have hit your feature flags quota limit, and will not be able to load feature flags until the quota is reset. Please visit https://posthog.com/docs/billing/limits-alerts to learn more."):(Rr.disable_flags||this.receivedFeatureFlags((xa=Fr.json)!==null&&xa!==void 0?xa:{},pa,{partialResponse:!!this.Rt.advanced_only_evaluate_survey_feature_flags}),this.Gn&&(this.Gn=!1,this.ss()))}}})}}getFeatureFlag($,Cr){var kr;if(Cr===void 0&&(Cr={}),!Cr.fresh||this.Wn)if(this.zn||this.getFlags()&&this.getFlags().length>0){if(!this.ts()){var Pr=this.getFeatureFlagResult($,Cr);return(kr=Pr==null?void 0:Pr.variant)!==null&&kr!==void 0?kr:Pr==null?void 0:Pr.enabled}}else Ao.warn('getFeatureFlag for key "'+$+Do)}getFeatureFlagDetails($){return this.getFlagsWithDetails()[$]}getFeatureFlagPayload($){var Cr=this.getFeatureFlagResult($,{send_event:!1});return Cr==null?void 0:Cr.payload}getFeatureFlagResult($,Cr){if(Cr===void 0&&(Cr={}),!Cr.fresh||this.Wn)if(this.zn||this.getFlags()&&this.getFlags().length>0){if(!this.ts()){var kr=this.getFlagVariants(),Pr=$ in kr,Rr=kr[$],Ir=this.getFlagPayloads()[$],Fr=String(Rr),Lr=this.Kn(No)||void 0,qr=this.Kn(Qi)||void 0,fa=this.Kn(Ji)||{};if(this.Rt.advanced_feature_flags_dedup_per_session){var pa,ga=this._instance.get_session_id(),xa=this.Kn(Ki);ga&&ga!==xa&&(fa={},(pa=this.Xi)==null||pa.register({[Ji]:fa,[Ki]:ga}))}if((Cr.send_event||!("send_event"in Cr))&&(!($ in fa)||!fa[$].includes(Fr))){var ya,ba,Aa,ka,Ea,Sa,Ca,Ta,Ia,Ra;k(fa[$])?fa[$].push(Fr):fa[$]=[Fr],(ya=this.Xi)==null||ya.register({[Ji]:fa});var ja=this.getFeatureFlagDetails($),Oa=[...(ba=this.Kn(Xi))!==null&&ba!==void 0?ba:[]];C(Rr)&&Oa.push("flag_missing");var La={$feature_flag:$,$feature_flag_response:Rr,$feature_flag_payload:Ir||null,$feature_flag_request_id:Lr,$feature_flag_evaluated_at:qr,$feature_flag_bootstrapped_response:((Aa=this.Rt.bootstrap)==null||(Aa=Aa.featureFlags)==null?void 0:Aa[$])||null,$feature_flag_bootstrapped_payload:((ka=this.Rt.bootstrap)==null||(ka=ka.featureFlagPayloads)==null?void 0:ka[$])||null,$used_bootstrap_value:!this.Wn};C(ja==null||(Ea=ja.metadata)==null?void 0:Ea.version)||(La.$feature_flag_version=ja.metadata.version);var Ha,Wa=(Sa=ja==null||(Ca=ja.reason)==null?void 0:Ca.description)!==null&&Sa!==void 0?Sa:ja==null||(Ta=ja.reason)==null?void 0:Ta.code;Wa&&(La.$feature_flag_reason=Wa),ja!=null&&(Ia=ja.metadata)!=null&&Ia.id&&(La.$feature_flag_id=ja.metadata.id),C(ja==null?void 0:ja.original_variant)&&C(ja==null?void 0:ja.original_enabled)||(La.$feature_flag_original_response=C(ja.original_variant)?ja.original_enabled:ja.original_variant),ja!=null&&(Ra=ja.metadata)!=null&&Ra.original_payload&&(La.$feature_flag_original_payload=ja==null||(Ha=ja.metadata)==null?void 0:Ha.original_payload),Oa.length&&(La.$feature_flag_error=Oa.join(",")),this._instance.capture("$feature_flag_called",La)}if(Pr){var Ja=Ir;if(!C(Ir))try{Ja=JSON.parse(Ir)}catch{}return{key:$,enabled:!!Rr,variant:typeof Rr=="string"?Rr:void 0,payload:Ja}}}}else Ao.warn('getFeatureFlagResult for key "'+$+Do)}getRemoteConfigPayload($,Cr){var kr=this.Rt.token,Pr={distinct_id:this._instance.get_distinct_id(),token:kr};this.rs()&&(Pr.evaluation_contexts=this.es()),this._instance._send_request({method:"POST",url:this._instance.requestRouter.endpointFor("flags","/flags/?v=2"),data:Pr,compression:this.Rt.disable_compression?void 0:Vr.Base64,timeout:this.Rt.feature_flag_request_timeout_ms,callback(Rr){var Ir,Fr=(Ir=Rr.json)==null?void 0:Ir.featureFlagPayloads;Cr((Fr==null?void 0:Fr[$])||void 0)}})}isFeatureEnabled($,Cr){if(Cr===void 0&&(Cr={}),!Cr.fresh||this.Wn){if(this.zn||this.getFlags()&&this.getFlags().length>0){var kr=this.getFeatureFlag($,Cr);return C(kr)?void 0:!!kr}Ao.warn('isFeatureEnabled for key "'+$+Do)}}addFeatureFlagsHandler($){this.featureFlagEventHandlers.push($)}removeFeatureFlagsHandler($){this.featureFlagEventHandlers=this.featureFlagEventHandlers.filter((Cr=>Cr!==$))}receivedFeatureFlags($,Cr,kr){if(this.Xi){this.zn=!0;var Pr=this.getFlagVariants(),Rr=this.getFlagPayloads(),Ir=this.getFlagsWithDetails();(function(Fr,Lr,qr,fa,pa,ga){qr===void 0&&(qr={}),fa===void 0&&(fa={}),pa===void 0&&(pa={});var xa=(Oa=>{var La=Oa.flags;return La?(Oa.featureFlags=Object.fromEntries(Object.keys(La).map((Ha=>{var Wa;return[Ha,(Wa=La[Ha].variant)!==null&&Wa!==void 0?Wa:La[Ha].enabled]}))),Oa.featureFlagPayloads=Object.fromEntries(Object.keys(La).filter((Ha=>La[Ha].enabled)).filter((Ha=>{var Wa;return(Wa=La[Ha].metadata)==null?void 0:Wa.payload})).map((Ha=>{var Wa;return[Ha,(Wa=La[Ha].metadata)==null?void 0:Wa.payload]})))):Ao.warn("Using an older version of the feature flags endpoint. Please upgrade your PostHog server to the latest version"),Oa})(Fr),ya=xa.flags,ba=xa.featureFlags,Aa=xa.featureFlagPayloads;if(ba){var ka=Fr.requestId,Ea=Fr.evaluatedAt;if(k(ba)){Ao.warn("v1 of the feature flags endpoint is deprecated. Please use the latest version.");var Sa={};if(ba)for(var Ca=0;ba.length>Ca;Ca++)Sa[ba[Ca]]=!0;Lr&&Lr.register({[Lo]:ba,[ji]:Sa})}else{var Ta=ba,Ia=Aa,Ra=ya;if(ga!=null&&ga.partialResponse)Ta=p$3({},qr,Ta),Ia=p$3({},fa,Ia),Ra=p$3({},pa,Ra);else if(Fr.errorsWhileComputingFlags)if(ya){var ja=new Set(Object.keys(ya).filter((Oa=>{var La;return!((La=ya[Oa])!=null&&La.failed)})));Ta=p$3({},qr,Object.fromEntries(Object.entries(Ta).filter((Oa=>{var[La]=Oa;return ja.has(La)})))),Ia=p$3({},fa,Object.fromEntries(Object.entries(Ia||{}).filter((Oa=>{var[La]=Oa;return ja.has(La)})))),Ra=p$3({},pa,Object.fromEntries(Object.entries(Ra||{}).filter((Oa=>{var[La]=Oa;return ja.has(La)}))))}else Ta=p$3({},qr,Ta),Ia=p$3({},fa,Ia),Ra=p$3({},pa,Ra);Lr&&Lr.register(p$3({[Lo]:Object.keys(zo(Ta)),[ji]:Ta||{},[Hi]:Ia||{},[Bi]:Ra||{}},ka?{[No]:ka}:{},Ea?{[Qi]:Ea}:{}))}}})($,this.Xi,Pr,Rr,Ir,kr),Cr||(this.Jn=!1),this.ls(Cr)}}override($,Cr){Cr===void 0&&(Cr=!1),Ao.warn("override is deprecated. Please use overrideFeatureFlags instead."),this.overrideFeatureFlags({flags:$,suppressWarning:Cr})}overrideFeatureFlags($){if(!this._instance.__loaded||!this.Xi)return Ao.uninitializedWarning("posthog.featureFlags.overrideFeatureFlags");if($===!1)return this.Xi.unregister(Uo),this.Xi.unregister(qi),this.ls(),Mo.info("All overrides cleared");if(k($)){var Cr=jo($);return this.Xi.register({[Uo]:Cr}),this.ls(),Mo.info("Flag overrides set",{flags:$})}if($&&typeof $=="object"&&("flags"in $||"payloads"in $)){var kr,Pr=$;if(this.Hn=!!((kr=Pr.suppressWarning)!==null&&kr!==void 0&&kr),"flags"in Pr){if(Pr.flags===!1)this.Xi.unregister(Uo),Mo.info("Flag overrides cleared");else if(Pr.flags){if(k(Pr.flags)){var Rr=jo(Pr.flags);this.Xi.register({[Uo]:Rr})}else this.Xi.register({[Uo]:Pr.flags});Mo.info("Flag overrides set",{flags:Pr.flags})}}return"payloads"in Pr&&(Pr.payloads===!1?(this.Xi.unregister(qi),Mo.info("Payload overrides cleared")):Pr.payloads&&(this.Xi.register({[qi]:Pr.payloads}),Mo.info("Payload overrides set",{payloads:Pr.payloads}))),void this.ls()}if($&&typeof $=="object")return this.Xi.register({[Uo]:$}),this.ls(),Mo.info("Flag overrides set",{flags:$});Ao.warn("Invalid overrideOptions provided to overrideFeatureFlags",{overrideOptions:$})}onFeatureFlags($){if(this.addFeatureFlagsHandler($),this.zn){var{flags:Cr,flagVariants:kr}=this.us();$(Cr,kr)}return()=>this.removeFeatureFlagsHandler($)}updateEarlyAccessFeatureEnrollment($,Cr,kr){var Pr,Rr=(this.Kn(zi)||[]).find((qr=>qr.flagKey===$)),Ir={["$feature_enrollment/"+$]:Cr},Fr={$feature_flag:$,$feature_enrollment:Cr,$set:Ir};Rr&&(Fr.$early_access_feature_name=Rr.name),kr&&(Fr.$feature_enrollment_stage=kr),this._instance.capture("$feature_enrollment_update",Fr),this.setPersonPropertiesForFlags(Ir,!1);var Lr=p$3({},this.getFlagVariants(),{[$]:Cr});(Pr=this.Xi)==null||Pr.register({[Lo]:Object.keys(zo(Lr)),[ji]:Lr}),this.ls()}getEarlyAccessFeatures($,Cr,kr){Cr===void 0&&(Cr=!1);var Pr=this.Kn(zi),Rr=kr?"&"+kr.map((Ir=>"stage="+Ir)).join("&"):"";if(Pr&&!Cr)return $(Pr);this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/early_access_features/?token="+this.Rt.token+Rr),method:"GET",callback:Ir=>{var Fr,Lr;if(Ir.json){var qr=Ir.json.earlyAccessFeatures;return(Fr=this.Xi)==null||Fr.unregister(zi),(Lr=this.Xi)==null||Lr.register({[zi]:qr}),$(qr)}}})}us(){var $=this.getFlags(),Cr=this.getFlagVariants();return{flags:$.filter((kr=>Cr[kr])),flagVariants:Object.keys(Cr).filter((kr=>Cr[kr])).reduce(((kr,Pr)=>(kr[Pr]=Cr[Pr],kr)),{})}}ls($){var{flags:Cr,flagVariants:kr}=this.us();this.featureFlagEventHandlers.forEach((Pr=>Pr(Cr,kr,{errorsLoading:$})))}setPersonPropertiesForFlags($,Cr){Cr===void 0&&(Cr=!0);var kr=this.Kn(Vi)||{},Pr=($==null?void 0:$.$set)||($!=null&&$.$set_once?{}:$),Rr=$==null?void 0:$.$set_once,Ir={};if(Rr)for(var Fr in Rr)({}).hasOwnProperty.call(Rr,Fr)&&(Fr in kr||(Ir[Fr]=Rr[Fr]));this._instance.register({[Vi]:p$3({},kr,Ir,Pr)}),Cr&&this._instance.reloadFeatureFlags()}resetPersonPropertiesForFlags(){this._instance.unregister(Vi)}setGroupPropertiesForFlags($,Cr){Cr===void 0&&(Cr=!0);var kr=this.Kn(Wi)||{};Object.keys(kr).length!==0&&Object.keys(kr).forEach((Pr=>{kr[Pr]=p$3({},kr[Pr],$[Pr]),delete $[Pr]})),this._instance.register({[Wi]:p$3({},kr,$)}),Cr&&this._instance.reloadFeatureFlags()}resetGroupPropertiesForFlags($){if($){var Cr=this.Kn(Wi)||{};this._instance.register({[Wi]:p$3({},Cr,{[$]:{}})})}else this._instance.unregister(Wi)}reset(){this.zn=!1,this.Un=!1,this.Yn=!1,this.Gn=!1,this.Wn=!1,this.$anon_distinct_id=void 0,this.os(),this.Hn=!1}}},Zo={sessionRecording:class{get Rt(){return this._instance.config}get Xi(){return this._instance.persistence}get started(){var $;return!(($=this.hs)==null||!$.isStarted)}get status(){var $,Cr;return this.cs===po||this.cs===_o?this.cs:($=(Cr=this.hs)==null?void 0:Cr.status)!==null&&$!==void 0?$:this.cs}constructor($){if(this._forceAllowLocalhostNetworkCapture=!1,this.cs=co,this.ds=void 0,this._instance=$,!this._instance.sessionManager)throw mo.error("started without valid sessionManager"),new Error(go+" started without valid sessionManager. This is a bug.");if(this.Rt.cookieless_mode===de)throw new Error(go+' cannot be used with cookieless_mode="always"')}initialize(){this.startIfEnabledOrStop()}get vs(){var $,Cr=!(($=this._instance.get_property(Li))==null||!$.enabled),kr=!this.Rt.disable_session_recording,Pr=this.Rt.disable_session_recording||this._instance.consent.isOptedOut();return t$a&&Cr&&kr&&!Pr}startIfEnabledOrStop($){var Cr;if(!this.vs||(Cr=this.hs)==null||!Cr.isStarted){var kr=!C(Object.assign)&&!C(Array.from);this.vs&&kr?(this.fs($),mo.info("starting")):(this.cs=co,this.stopRecording())}}fs($){var Cr,kr,Pr;this.vs&&(this.cs!==po&&this.cs!==_o&&(this.cs=fo),h$3!=null&&(Cr=h$3.__PosthogExtensions__)!=null&&(Cr=Cr.rrweb)!=null&&Cr.record&&(kr=h$3.__PosthogExtensions__)!=null&&kr.initSessionRecording?this.ps($):(Pr=h$3.__PosthogExtensions__)==null||Pr.loadExternalDependency==null||Pr.loadExternalDependency(this._instance,this.gs,(Rr=>{if(Rr)return mo.error("could not load recorder",Rr);this.ps($)})))}stopRecording(){var $,Cr;($=this.ds)==null||$.call(this),this.ds=void 0,(Cr=this.hs)==null||Cr.stop()}ys(){var $,Cr;($=this.ds)==null||$.call(this),this.ds=void 0,(Cr=this.hs)==null||Cr.discard()}bs(){var $;($=this.Xi)==null||$.unregister(Ni)}ws($,Cr){if(D($))return null;var kr,Pr=L($)?$:parseFloat($);return typeof(kr=Pr)!="number"||!Number.isFinite(kr)||0>kr||kr>1?(mo.warn(Cr+" must be between 0 and 1. Ignoring invalid value:",$),null):Pr}_s($){if(this.Xi){var Cr,kr,Pr=this.Xi,Rr=()=>{var Ir,Fr=$.sessionRecording===!1?void 0:$.sessionRecording,Lr=this.ws((Ir=this.Rt.session_recording)==null?void 0:Ir.sampleRate,"session_recording.sampleRate"),qr=this.ws(Fr==null?void 0:Fr.sampleRate,"remote config sampleRate"),fa=Lr??qr;D(fa)&&this.bs();var pa=Fr==null?void 0:Fr.minimumDurationMilliseconds;Pr.register({[Li]:p$3({cache_timestamp:Date.now(),enabled:!!Fr},Fr,{networkPayloadCapture:p$3({capturePerformance:$.capturePerformance},Fr==null?void 0:Fr.networkPayloadCapture),canvasRecording:{enabled:Fr==null?void 0:Fr.recordCanvas,fps:Fr==null?void 0:Fr.canvasFps,quality:Fr==null?void 0:Fr.canvasQuality},sampleRate:fa,minimumDurationMilliseconds:C(pa)?null:pa,endpoint:Fr==null?void 0:Fr.endpoint,triggerMatchType:Fr==null?void 0:Fr.triggerMatchType,masking:Fr==null?void 0:Fr.masking,urlTriggers:Fr==null?void 0:Fr.urlTriggers,version:Fr==null?void 0:Fr.version,triggerGroups:Fr==null?void 0:Fr.triggerGroups})})};Rr(),(Cr=this.ds)==null||Cr.call(this),this.ds=(kr=this._instance.sessionManager)==null?void 0:kr.onSessionId(Rr)}}onRemoteConfig($){return"sessionRecording"in $?$.sessionRecording===!1?(this._s($),void this.ys()):(this._s($),void this.startIfEnabledOrStop()):(this.cs===po&&(this.cs=_o,mo.warn("config refresh failed, recording will not start until page reload")),void this.startIfEnabledOrStop())}log($,Cr){var kr;Cr===void 0&&(Cr="log"),(kr=this.hs)!=null&&kr.log?this.hs.log($,Cr):mo.warn("log called before recorder was ready")}get gs(){var $,Cr,kr=($=this._instance)==null||($=$.persistence)==null?void 0:$.get_property(Li);return(kr==null||(Cr=kr.scriptConfig)==null?void 0:Cr.script)||"lazy-recorder"}Is(){var $,Cr=this._instance.get_property(Li);if(!Cr)return!1;var kr=($=(typeof Cr=="object"?Cr:JSON.parse(Cr)).cache_timestamp)!==null&&$!==void 0?$:Date.now();return 36e5>=Date.now()-kr}ps($){var Cr,kr;if((Cr=h$3.__PosthogExtensions__)==null||!Cr.initSessionRecording)return mo.warn("Called on script loaded before session recording is available. This can be caused by adblockers."),void this._instance.register_for_session({$sdk_debug_recording_script_not_loaded:!0});if(this.hs||(this.hs=(kr=h$3.__PosthogExtensions__)==null?void 0:kr.initSessionRecording(this._instance),this.hs._forceAllowLocalhostNetworkCapture=this._forceAllowLocalhostNetworkCapture),!this.Is())return this.cs===_o||this.cs===po?void 0:(this.cs=po,mo.info("persisted remote config is stale, requesting fresh config before starting"),void new Hr(this._instance).load());this.cs=fo,this.hs.start($)}onRRwebEmit($){var Cr;(Cr=this.hs)==null||Cr.onRRwebEmit==null||Cr.onRRwebEmit($)}overrideLinkedFlag(){var $,Cr;this.hs||(Cr=this.Xi)==null||Cr.register({$replay_override_linked_flag:!0}),($=this.hs)==null||$.overrideLinkedFlag()}overrideSampling(){var $,Cr;this.hs||(Cr=this.Xi)==null||Cr.register({$replay_override_sampling:!0}),($=this.hs)==null||$.overrideSampling()}overrideTrigger($){var Cr,kr;this.hs||(kr=this.Xi)==null||kr.register({[$==="url"?"$replay_override_url_trigger":"$replay_override_event_trigger"]:!0}),(Cr=this.hs)==null||Cr.overrideTrigger($)}get sdkDebugProperties(){var $;return(($=this.hs)==null?void 0:$.sdkDebugProperties)||{$recording_status:this.status}}tryAddCustomEvent($,Cr){var kr;return!((kr=this.hs)==null||!kr.tryAddCustomEvent($,Cr))}}},ta={autocapture:class{constructor($){this.Cs=!1,this.Ss=null,this.ks=!1,this.instance=$,this.rageclicks=new io($.config.rageclick),this.xs=null}initialize(){this.startIfEnabled()}get Rt(){var $,Cr,kr=O(this.instance.config.autocapture)?this.instance.config.autocapture:{};return kr.url_allowlist=($=kr.url_allowlist)==null?void 0:$.map((Pr=>new RegExp(Pr))),kr.url_ignorelist=(Cr=kr.url_ignorelist)==null?void 0:Cr.map((Pr=>new RegExp(Pr))),kr}Ts(){if(this.isBrowserSupported()){if(t$a&&r$c){var $=kr=>{kr=kr||(t$a==null?void 0:t$a.event);try{this.As(kr)}catch(Pr){ro.error("Failed to capture event",Pr)}};if(Oe(r$c,"submit",$,{capture:!0}),Oe(r$c,"change",$,{capture:!0}),Oe(r$c,"click",$,{capture:!0}),this.Rt.capture_copied_text){var Cr=kr=>{this.As(kr=kr||(t$a==null?void 0:t$a.event),eo)};Oe(r$c,"copy",Cr,{capture:!0}),Oe(r$c,"cut",Cr,{capture:!0})}}}else ro.info("Disabling Automatic Event Collection because this browser is not supported")}startIfEnabled(){this.isEnabled&&!this.Cs&&(this.Ts(),this.Cs=!0)}onRemoteConfig($){$.elementsChainAsString&&(this.ks=$.elementsChainAsString),this.instance.persistence&&this.instance.persistence.register({[ki]:!!$.autocapture_opt_out}),this.Ss=!!$.autocapture_opt_out,this.startIfEnabled()}setElementSelectors($){this.xs=$}getElementSelectors($){var Cr,kr=[];return(Cr=this.xs)==null||Cr.forEach((Pr=>{var Rr=r$c==null?void 0:r$c.querySelectorAll(Pr);Rr==null||Rr.forEach((Ir=>{$===Ir&&kr.push(Pr)}))})),kr}get isEnabled(){var $,Cr,kr=($=this.instance.persistence)==null?void 0:$.props[ki];if(M$1(this.Ss)&&!N$1(kr)&&!this.instance.ki())return!1;var Pr=(Cr=this.Ss)!==null&&Cr!==void 0?Cr:!!kr;return!!this.instance.config.autocapture&&!Pr}As($,Cr){if(Cr===void 0&&(Cr="$autocapture"),this.isEnabled){var kr,Pr=An($);Rn(Pr)&&(Pr=Pr.parentNode||null),Cr==="$autocapture"&&$.type==="click"&&$ instanceof MouseEvent&&this.instance.config.rageclick&&(kr=this.rageclicks)!=null&&kr.isRageClick($.clientX,$.clientY,$.timeStamp||new Date().getTime())&&(function(ga,xa){if(!t$a||jn(ga))return!1;var ya,ba,Aa;if(N$1(xa)?(ya=!!xa&&Nn,ba=void 0):(ya=(Aa=xa==null?void 0:xa.css_selector_ignorelist)!==null&&Aa!==void 0?Aa:Nn,ba=xa==null?void 0:xa.content_ignorelist),ya===!1)return!1;var{targetElementList:ka}=zn(ga,!1);return!(function(Ea,Sa){if(Ea===!1||C(Ea))return!1;var Ca;if(Ea===!0)Ca=Un;else{if(!k(Ea))return!1;if(Ea.length>10)return yi.error("[PostHog] content_ignorelist array cannot exceed 10 items. Use css_selector_ignorelist for more complex matching."),!1;Ca=Ea.map((Ta=>Ta.toLowerCase()))}return Sa.some((Ta=>{var{safeText:Ia,ariaLabel:Ra}=Ta;return Ca.some((ja=>Ia.includes(ja)||Ra.includes(ja)))}))})(ba,ka.map((Ea=>{var Sa;return{safeText:Fn(Ea).toLowerCase(),ariaLabel:((Sa=Ea.getAttribute("aria-label"))==null?void 0:Sa.toLowerCase().trim())||""}})))&&!Dn(ka,ya)})(Pr,this.instance.config.rageclick)&&this.As($,"$rageclick");var Rr=Cr===eo;if(Pr&&(function(ga,xa,ya,ba,Aa){var ka,Ea,Sa,Ca;if(ya===void 0&&(ya=void 0),!t$a||jn(ga)||(ka=ya)!=null&&ka.url_allowlist&&!On(ya.url_allowlist)||(Ea=ya)!=null&&Ea.url_ignorelist&&On(ya.url_ignorelist))return!1;if((Sa=ya)!=null&&Sa.dom_event_allowlist){var Ta=ya.dom_event_allowlist;if(Ta&&!Ta.some((La=>xa.type===La)))return!1}var{parentIsUsefulElement:Ia,targetElementList:Ra}=zn(ga,ba);if(!(function(La,Ha){var Wa=Ha==null?void 0:Ha.element_allowlist;if(C(Wa))return!0;var Ja,Ya=function(Qa){if(Wa.some((Na=>Qa.tagName.toLowerCase()===Na)))return{v:!0}};for(var Za of La)if(Ja=Ya(Za))return Ja.v;return!1})(Ra,ya)||!Dn(Ra,(Ca=ya)==null?void 0:Ca.css_selector_allowlist))return!1;var ja=t$a.getComputedStyle(ga);if(ja&&ja.getPropertyValue("cursor")==="pointer"&&xa.type==="click")return!0;var Oa=ga.tagName.toLowerCase();switch(Oa){case"html":return!1;case"form":return(Aa||["submit"]).indexOf(xa.type)>=0;case"input":case"select":case"textarea":return(Aa||["change","click"]).indexOf(xa.type)>=0;default:return Ia?(Aa||["click"]).indexOf(xa.type)>=0:(Aa||["click"]).indexOf(xa.type)>=0&&(Mn.indexOf(Oa)>-1||ga.getAttribute("contenteditable")==="true")}})(Pr,$,this.Rt,Rr,Rr?["copy","cut"]:void 0)){var{props:Ir,explicitNoCapture:Fr}=oo(Pr,{e:$,maskAllElementAttributes:this.instance.config.mask_all_element_attributes,maskAllText:this.instance.config.mask_all_text,elementAttributeIgnoreList:this.Rt.element_attribute_ignorelist,elementsChainAsString:this.ks});if(Fr)return!1;var Lr=this.getElementSelectors(Pr);if(Lr&&Lr.length>0&&(Ir.$element_selectors=Lr),Cr===eo){var qr,fa=Cn(t$a==null||(qr=t$a.getSelection())==null?void 0:qr.toString()),pa=$.type||"clipboard";if(!fa)return!1;Ir.$selected_content=fa,Ir.$copy_type=pa}return this.instance.capture(Cr,Ir),!0}}}isBrowserSupported(){return P$1(r$c==null?void 0:r$c.querySelectorAll)}},historyAutocapture:class{constructor($){var Cr;this._instance=$,this.Es=(t$a==null||(Cr=t$a.location)==null?void 0:Cr.pathname)||""}initialize(){this.startIfEnabled()}get isEnabled(){return this._instance.config.capture_pageview==="history_change"}startIfEnabled(){this.isEnabled&&(yi.info("History API monitoring enabled, starting..."),this.monitorHistoryChanges())}stop(){this.Rs&&this.Rs(),this.Rs=void 0,yi.info("History API monitoring stopped")}monitorHistoryChanges(){var $,Cr;if(t$a&&t$a.history){var kr=this;($=t$a.history.pushState)!=null&&$.__posthog_wrapped__||lo(t$a.history,"pushState",(Pr=>function(Rr,Ir,Fr){Pr.call(this,Rr,Ir,Fr),kr.Ns("pushState")})),(Cr=t$a.history.replaceState)!=null&&Cr.__posthog_wrapped__||lo(t$a.history,"replaceState",(Pr=>function(Rr,Ir,Fr){Pr.call(this,Rr,Ir,Fr),kr.Ns("replaceState")})),this.Ms()}}Ns($){try{var Cr,kr=t$a==null||(Cr=t$a.location)==null?void 0:Cr.pathname;if(!kr)return;kr!==this.Es&&this.isEnabled&&this._instance.capture(ge,{navigation_type:$}),this.Es=kr}catch(Pr){yi.error("Error capturing "+$+" pageview",Pr)}}Ms(){if(!this.Rs){var $=()=>{this.Ns("popstate")};Oe(t$a,"popstate",$),this.Rs=()=>{t$a&&t$a.removeEventListener("popstate",$)}}}},heatmaps:class{get Rt(){return this.instance.config}constructor($){var Cr;this.Fs=!1,this.Cs=!1,this.Os=null,this.instance=$,this.Fs=!((Cr=this.instance.persistence)==null||!Cr.props[Pi]),this.rageclicks=new io($.config.rageclick)}initialize(){this.startIfEnabled()}get flushIntervalMilliseconds(){var $=5e3;return O(this.Rt.capture_heatmaps)&&this.Rt.capture_heatmaps.flush_interval_milliseconds&&($=this.Rt.capture_heatmaps.flush_interval_milliseconds),$}get isEnabled(){return D(this.Rt.capture_heatmaps)?D(this.Rt.enable_heatmaps)?this.Fs:this.Rt.enable_heatmaps:this.Rt.capture_heatmaps!==!1}startIfEnabled(){if(this.isEnabled){if(this.Cs)return;bo.info("starting..."),this.Ps(),this.Tt()}else{var $;clearInterval(($=this.Os)!==null&&$!==void 0?$:void 0),this.Ls(),this.getAndClearBuffer()}}onRemoteConfig($){if("heatmaps"in $){var Cr=!!$.heatmaps;this.instance.persistence&&this.instance.persistence.register({[Pi]:Cr}),this.Fs=Cr,this.startIfEnabled()}}getAndClearBuffer(){var $=this.T;return this.T=void 0,$}Ds($){this.wt($.originalEvent,"deadclick")}Tt(){this.Os&&clearInterval(this.Os),this.Os=(r$c==null?void 0:r$c.visibilityState)==="visible"?setInterval(this.ji.bind(this),this.flushIntervalMilliseconds):null}Ps(){t$a&&r$c&&(this.Bs=this.ji.bind(this),Oe(t$a,_e,this.Bs),this.js=$=>this.wt($||(t$a==null?void 0:t$a.event)),Oe(r$c,"click",this.js,{capture:!0}),this.qs=$=>this.Zs($||(t$a==null?void 0:t$a.event)),Oe(r$c,"mousemove",this.qs,{capture:!0}),this.$s=new Ze(this.instance,Xe,this.Ds.bind(this)),this.$s.startIfEnabledOrStop(),this.Vs=this.Tt.bind(this),Oe(r$c,pe,this.Vs),this.Cs=!0)}Ls(){var $;t$a&&r$c&&(this.Bs&&t$a.removeEventListener(_e,this.Bs),this.js&&r$c.removeEventListener("click",this.js,{capture:!0}),this.qs&&r$c.removeEventListener("mousemove",this.qs,{capture:!0}),this.Vs&&r$c.removeEventListener(pe,this.Vs),clearTimeout(this.Hs),($=this.$s)==null||$.stop(),this.Cs=!1)}zs($,Cr){var kr=this.instance.scrollManager.scrollY(),Pr=this.instance.scrollManager.scrollX(),Rr=this.instance.scrollManager.scrollElement(),Ir=(function(Fr,Lr,qr){for(var fa=Fr;fa&&Tn(fa)&&!$n(fa,"body");){if(fa===qr)return!1;if(w$1(Lr,t$a==null?void 0:t$a.getComputedStyle(fa).position))return!0;fa=Ln(fa)}return!1})(An($),["fixed","sticky"],Rr);return{x:$.clientX+(Ir?0:Pr),y:$.clientY+(Ir?0:kr),target_fixed:Ir,type:Cr}}wt($,Cr){var kr;if(Cr===void 0&&(Cr="click"),!xn($.target)&&yo($)){var Pr=this.zs($,Cr);(kr=this.rageclicks)!=null&&kr.isRageClick($.clientX,$.clientY,new Date().getTime())&&this.Us(p$3({},Pr,{type:"rageclick"})),this.Us(Pr)}}Zs($){!xn($.target)&&yo($)&&(clearTimeout(this.Hs),this.Hs=setTimeout((()=>{this.Us(this.zs($,"mousemove"))}),500))}Us($){if(t$a){var Cr=t$a.location.href,kr=this.Rt.custom_personal_data_properties,Pr=this.Rt.mask_personal_data_properties?[...hr,...kr||[]]:[],Rr=ar(Cr,Pr,vr);this.T=this.T||{},this.T[Rr]||(this.T[Rr]=[]),this.T[Rr].push($)}}ji(){this.T&&!I$1(this.T)&&this.instance.capture("$$heatmap",{$heatmap_data:this.getAndClearBuffer()})}},deadClicksAutocapture:Ze,webVitalsAutocapture:class{constructor($){var Cr;this.Fs=!1,this.Cs=!1,this.T={url:void 0,metrics:[],firstMetricTimestamp:void 0},this.Ys=()=>{clearTimeout(this.Gs),this.T.metrics.length!==0&&(this._instance.capture("$web_vitals",this.T.metrics.reduce(((kr,Pr)=>p$3({},kr,{["$web_vitals_"+Pr.name+"_event"]:p$3({},Pr),["$web_vitals_"+Pr.name+"_value"]:Pr.value})),{})),this.T={url:void 0,metrics:[],firstMetricTimestamp:void 0})},this.nt=kr=>{var Pr,Rr=(Pr=this._instance.sessionManager)==null?void 0:Pr.checkAndGetSessionAndWindowId(!0);if(C(Rr))ho.error("Could not read session ID. Dropping metrics!");else{this.T=this.T||{url:void 0,metrics:[],firstMetricTimestamp:void 0};var Ir=this.Ws();C(Ir)||(D(kr==null?void 0:kr.name)||D(kr==null?void 0:kr.value)?ho.error("Invalid metric received",kr):!this.Xs||this.Xs>kr.value?(this.T.url!==Ir&&(this.Ys(),this.Gs=setTimeout(this.Ys,this.flushToCaptureTimeoutMs)),C(this.T.url)&&(this.T.url=Ir),this.T.firstMetricTimestamp=C(this.T.firstMetricTimestamp)?Date.now():this.T.firstMetricTimestamp,kr.attribution&&kr.attribution.interactionTargetElement&&(kr.attribution.interactionTargetElement=void 0),this.T.metrics.push(p$3({},kr,{$current_url:Ir,$session_id:Rr.sessionId,$window_id:Rr.windowId,timestamp:Date.now()})),this.T.metrics.length===this.allowedMetrics.length&&this.Ys()):ho.error("Ignoring metric with value >= "+this.Xs,kr))}},this.Js=()=>{if(!this.Cs){var kr,Pr,Rr,Ir,Fr=h$3.__PosthogExtensions__;C(Fr)||C(Fr.postHogWebVitalsCallbacks)||({onLCP:kr,onCLS:Pr,onFCP:Rr,onINP:Ir}=Fr.postHogWebVitalsCallbacks),kr&&Pr&&Rr&&Ir?(this.allowedMetrics.indexOf("LCP")>-1&&kr(this.nt.bind(this)),this.allowedMetrics.indexOf("CLS")>-1&&Pr(this.nt.bind(this)),this.allowedMetrics.indexOf("FCP")>-1&&Rr(this.nt.bind(this)),this.allowedMetrics.indexOf("INP")>-1&&Ir(this.nt.bind(this)),this.Cs=!0):ho.error("web vitals callbacks not loaded - not starting")}},this._instance=$,this.Fs=!((Cr=this._instance.persistence)==null||!Cr.props[Fi]),this.startIfEnabled()}get Ks(){return this._instance.config.capture_performance}get allowedMetrics(){var $,Cr,kr=O(this.Ks)?($=this.Ks)==null?void 0:$.web_vitals_allowed_metrics:void 0;return D(kr)?((Cr=this._instance.persistence)==null?void 0:Cr.props[Di])||["CLS","FCP","INP","LCP"]:kr}get flushToCaptureTimeoutMs(){return(O(this.Ks)?this.Ks.web_vitals_delayed_flush_ms:void 0)||5e3}get useAttribution(){var $=O(this.Ks)?this.Ks.web_vitals_attribution:void 0;return $!=null&&$}get Xs(){var $=O(this.Ks)&&L(this.Ks.__web_vitals_max_value)?this.Ks.__web_vitals_max_value:vo;return $>0&&6e4>=$?vo:$}get isEnabled(){var $=s$d==null?void 0:s$d.protocol;if($!=="http:"&&$!=="https:")return ho.info("Web Vitals are disabled on non-http/https protocols"),!1;var Cr=O(this.Ks)?this.Ks.web_vitals:N$1(this.Ks)?this.Ks:void 0;return N$1(Cr)?Cr:this.Fs}startIfEnabled(){this.isEnabled&&!this.Cs&&(ho.info("enabled, starting..."),this.ni(this.Js))}onRemoteConfig($){if("capturePerformance"in $){var Cr=O($.capturePerformance)&&!!$.capturePerformance.web_vitals,kr=O($.capturePerformance)?$.capturePerformance.web_vitals_allowed_metrics:void 0;this._instance.persistence&&(this._instance.persistence.register({[Fi]:Cr}),this._instance.persistence.register({[Di]:kr})),this.Fs=Cr,this.startIfEnabled()}}ni($){var Cr,kr;(Cr=h$3.__PosthogExtensions__)!=null&&Cr.postHogWebVitalsCallbacks?$():(kr=h$3.__PosthogExtensions__)==null||kr.loadExternalDependency==null||kr.loadExternalDependency(this._instance,this.useAttribution?"web-vitals-with-attribution":"web-vitals",(Pr=>{Pr?ho.error("failed to load script",Pr):$()}))}Ws(){var $=t$a?t$a.location.href:void 0;if($){var Cr=this._instance.config.custom_personal_data_properties,kr=this._instance.config.mask_personal_data_properties?[...hr,...Cr||[]]:[];return ar($,kr,vr)}ho.error("Could not determine current URL")}}},ia={exceptionObserver:class{constructor($){var Cr,kr,Pr;this.Js=()=>{var Rr;if(t$a&&this.isEnabled&&(Rr=h$3.__PosthogExtensions__)!=null&&Rr.errorWrappingFunctions){var Ir=h$3.__PosthogExtensions__.errorWrappingFunctions.wrapOnError,Fr=h$3.__PosthogExtensions__.errorWrappingFunctions.wrapUnhandledRejection,Lr=h$3.__PosthogExtensions__.errorWrappingFunctions.wrapConsoleError;try{!this.Qs&&this.Rt.capture_unhandled_errors&&(this.Qs=Ir(this.captureException.bind(this))),!this.eo&&this.Rt.capture_unhandled_rejections&&(this.eo=Fr(this.captureException.bind(this))),!this.io&&this.Rt.capture_console_errors&&(this.io=Lr(this.captureException.bind(this)))}catch(qr){ao.error("failed to start",qr),this.ro()}}},this._instance=$,this.no=!((Cr=this._instance.persistence)==null||!Cr.props[Oi]),this.so=new J({refillRate:(kr=this._instance.config.error_tracking.__exceptionRateLimiterRefillRate)!==null&&kr!==void 0?kr:1,bucketSize:(Pr=this._instance.config.error_tracking.__exceptionRateLimiterBucketSize)!==null&&Pr!==void 0?Pr:10,refillInterval:1e4,qt:ao}),this.Rt=this.oo(),this.startIfEnabledOrStop()}oo(){var $=this._instance.config.capture_exceptions,Cr={capture_unhandled_errors:!1,capture_unhandled_rejections:!1,capture_console_errors:!1};return O($)?Cr=p$3({},Cr,$):(C($)?this.no:$)&&(Cr=p$3({},Cr,{capture_unhandled_errors:!0,capture_unhandled_rejections:!0})),Cr}get isEnabled(){return this.Rt.capture_console_errors||this.Rt.capture_unhandled_errors||this.Rt.capture_unhandled_rejections}startIfEnabledOrStop(){this.isEnabled?(ao.info("enabled"),this.ro(),this.ni(this.Js)):this.ro()}ni($){var Cr,kr;(Cr=h$3.__PosthogExtensions__)!=null&&Cr.errorWrappingFunctions&&$(),(kr=h$3.__PosthogExtensions__)==null||kr.loadExternalDependency==null||kr.loadExternalDependency(this._instance,"exception-autocapture",(Pr=>{if(Pr)return ao.error("failed to load script",Pr);$()}))}ro(){var $,Cr,kr;($=this.Qs)==null||$.call(this),this.Qs=void 0,(Cr=this.eo)==null||Cr.call(this),this.eo=void 0,(kr=this.io)==null||kr.call(this),this.io=void 0}onRemoteConfig($){"autocaptureExceptions"in $&&(this.no=!!$.autocaptureExceptions||!1,this._instance.persistence&&this._instance.persistence.register({[Oi]:this.no}),this.Rt=this.oo(),this.startIfEnabledOrStop())}onConfigChange(){this.Rt=this.oo()}captureException($){var Cr,kr,Pr,Rr=(Cr=$==null||(kr=$.$exception_list)==null||(kr=kr[0])==null?void 0:kr.type)!==null&&Cr!==void 0?Cr:"Exception";this.so.consumeRateLimit(Rr)?ao.info("Skipping exception capture because of client rate limiting.",{exception:Rr}):(Pr=this._instance.exceptions)==null||Pr.sendExceptionEvent($)}},exceptions:class{constructor($){var Cr,kr;this.ao=[],this.lo=new Kt([new li,new mi,new hi,new ui,new _i,new pi,new vi,new gi],(function(Pr){for(var Rr=arguments.length,Ir=new Array(Rr>1?Rr-1:0),Fr=1;Rr>Fr;Fr++)Ir[Fr-1]=arguments[Fr];return function(Lr,qr){qr===void 0&&(qr=0);for(var fa=[],pa=Lr.split(`
|
|
18
|
+
`),ga=qr;pa.length>ga;ga++){var xa=pa[ga];if(1024>=xa.length){var ya=ai.test(xa)?xa.replace(ai,"$1"):xa;if(!ya.match(/\S*Error: /)){for(var ba of Ir){var Aa=ba(ya,Pr);if(Aa){fa.push(Aa);break}}if(fa.length>=50)break}}}return(function(ka){if(!ka.length)return[];var Ea=Array.from(ka);return Ea.reverse(),Ea.slice(0,50).map((Sa=>{return p$3({},Sa,{filename:Sa.filename||(Ca=Ea,Ca[Ca.length-1]||{}).filename,function:Sa.function||Xt});var Ca}))})(fa)}})("web:javascript",ri,oi)),this._instance=$,this.ao=(Cr=(kr=this._instance.persistence)==null?void 0:kr.get_property(Ii))!==null&&Cr!==void 0?Cr:[]}onRemoteConfig($){var Cr,kr,Pr;if("errorTracking"in $){var Rr=(Cr=(kr=$.errorTracking)==null?void 0:kr.suppressionRules)!==null&&Cr!==void 0?Cr:[],Ir=(Pr=$.errorTracking)==null?void 0:Pr.captureExtensionExceptions;this.ao=Rr,this._instance.persistence&&this._instance.persistence.register({[Ii]:this.ao,[Ci]:Ir})}}get uo(){var $,Cr=!!this._instance.get_property(Ci),kr=this._instance.config.error_tracking.captureExtensionExceptions;return($=kr??Cr)!==null&&$!==void 0&&$}buildProperties($,Cr){return this.lo.buildFromUnknown($,{syntheticException:Cr==null?void 0:Cr.syntheticException,mechanism:{handled:Cr==null?void 0:Cr.handled}})}sendExceptionEvent($){var Cr=$.$exception_list;if(this.ho(Cr)){if(this.co(Cr))return void Bo.info("Skipping exception capture because a suppression rule matched");if(!this.uo&&this.do(Cr))return void Bo.info("Skipping exception capture because it was thrown by an extension");if(!this._instance.config.error_tracking.__capturePostHogExceptions&&this.vo(Cr))return void Bo.info("Skipping exception capture because it was thrown by the PostHog SDK")}return this._instance.capture("$exception",$,{_noTruncate:!0,_batchKey:"exceptionEvent",Gr:!0})}co($){if($.length===0)return!1;var Cr=$.reduce(((kr,Pr)=>{var{type:Rr,value:Ir}=Pr;return F(Rr)&&Rr.length>0&&kr.$exception_types.push(Rr),F(Ir)&&Ir.length>0&&kr.$exception_values.push(Ir),kr}),{$exception_types:[],$exception_values:[]});return this.ao.some((kr=>{var Pr=kr.values.map((Rr=>{var Ir,Fr=Ws[Rr.operator],Lr=k(Rr.value)?Rr.value:[Rr.value],qr=(Ir=Cr[Rr.key])!==null&&Ir!==void 0?Ir:[];return Lr.length>0&&Fr(Lr,qr)}));return kr.type==="OR"?Pr.some(Boolean):Pr.every(Boolean)}))}do($){return $.flatMap((Cr=>{var kr,Pr;return(kr=(Pr=Cr.stacktrace)==null?void 0:Pr.frames)!==null&&kr!==void 0?kr:[]})).some((Cr=>Cr.filename&&Cr.filename.startsWith("chrome-extension://")))}vo($){if($.length>0){var Cr,kr,Pr,Rr,Ir=(Cr=(kr=$[0].stacktrace)==null?void 0:kr.frames)!==null&&Cr!==void 0?Cr:[],Fr=Ir[Ir.length-1];return(Pr=Fr==null||(Rr=Fr.filename)==null?void 0:Rr.includes("posthog.com/static"))!==null&&Pr!==void 0&&Pr}return!1}ho($){return!D($)&&k($)}}},ea=p$3({productTours:class{get Xi(){return this._instance.persistence}constructor($){this.fo=null,this.po=null,this._instance=$}initialize(){this.loadIfEnabled()}onRemoteConfig($){"productTours"in $&&(this.Xi&&this.Xi.register({[Mi]:!!$.productTours}),this.loadIfEnabled())}loadIfEnabled(){var $,Cr;this.fo||($=this._instance).config.disable_product_tours||(Cr=$.persistence)==null||!Cr.get_property(Mi)||this.ni((()=>this.mo()))}ni($){var Cr,kr;(Cr=h$3.__PosthogExtensions__)!=null&&Cr.generateProductTours?$():(kr=h$3.__PosthogExtensions__)==null||kr.loadExternalDependency==null||kr.loadExternalDependency(this._instance,"product-tours",(Pr=>{Pr?wo.error("Could not load product tours script",Pr):$()}))}mo(){var $;!this.fo&&($=h$3.__PosthogExtensions__)!=null&&$.generateProductTours&&(this.fo=h$3.__PosthogExtensions__.generateProductTours(this._instance,!0))}getProductTours($,Cr){if(Cr===void 0&&(Cr=!1),!k(this.po)||Cr){var kr=this.Xi;if(kr){var Pr=kr.props[Yi];if(k(Pr)&&!Cr)return this.po=Pr,void $(Pr,{isLoaded:!0})}this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/product_tours/?token="+this._instance.config.token),method:"GET",callback:Rr=>{var Ir=Rr.statusCode;if(Ir!==200||!Rr.json){var Fr="Product Tours API could not be loaded, status: "+Ir;return wo.error(Fr),void $([],{isLoaded:!1,error:Fr})}var Lr=k(Rr.json.product_tours)?Rr.json.product_tours:[];this.po=Lr,kr&&kr.register({[Yi]:Lr}),$(Lr,{isLoaded:!0})}})}else $(this.po,{isLoaded:!0})}getActiveProductTours($){D(this.fo)?$([],{isLoaded:!1,error:"Product tours not loaded"}):this.fo.getActiveProductTours($)}showProductTour($){var Cr;(Cr=this.fo)==null||Cr.showTourById($)}previewTour($){this.fo?this.fo.previewTour($):this.ni((()=>{var Cr;this.mo(),(Cr=this.fo)==null||Cr.previewTour($)}))}dismissProductTour(){var $;($=this.fo)==null||$.dismissTour("user_clicked_skip")}nextStep(){var $;($=this.fo)==null||$.nextStep()}previousStep(){var $;($=this.fo)==null||$.previousStep()}clearCache(){var $;this.po=null,($=this.Xi)==null||$.unregister(Yi)}resetTour($){var Cr;(Cr=this.fo)==null||Cr.resetTour($)}resetAllTours(){var $;($=this.fo)==null||$.resetAllTours()}cancelPendingTour($){var Cr;(Cr=this.fo)==null||Cr.cancelPendingTour($)}}},Qo),ra={siteApps:class{constructor($){this._instance=$,this.yo=[],this.apps={}}get isEnabled(){return!!this._instance.config.opt_in_site_apps}bo($,Cr){if(Cr){var kr=this.globalsForEvent(Cr);this.yo.push(kr),this.yo.length>1e3&&(this.yo=this.yo.slice(10))}}get siteAppLoaders(){var $;return($=h$3._POSTHOG_REMOTE_CONFIG)==null||($=$[this._instance.config.token])==null?void 0:$.siteApps}initialize(){if(this.isEnabled){var $=this._instance._addCaptureHook(this.bo.bind(this));this.wo=()=>{$(),this.yo=[],this.wo=void 0}}}globalsForEvent($){var Cr,kr,Pr,Rr,Ir,Fr,Lr;if(!$)throw new Error("Event payload is required");var qr={},fa=this._instance.get_property("$groups")||[],pa=this._instance.get_property("$stored_group_properties")||{};for(var[ga,xa]of Object.entries(pa))qr[ga]={id:fa[ga],type:ga,properties:xa};var{$set_once:ya,$set:ba}=$;return{event:p$3({},_$2($,Eo),{properties:p$3({},$.properties,ba?{$set:p$3({},(Cr=(kr=$.properties)==null?void 0:kr.$set)!==null&&Cr!==void 0?Cr:{},ba)}:{},ya?{$set_once:p$3({},(Pr=(Rr=$.properties)==null?void 0:Rr.$set_once)!==null&&Pr!==void 0?Pr:{},ya)}:{}),elements_chain:(Ir=(Fr=$.properties)==null?void 0:Fr.$elements_chain)!==null&&Ir!==void 0?Ir:"",distinct_id:(Lr=$.properties)==null?void 0:Lr.distinct_id}),person:{properties:this._instance.get_property("$stored_person_properties")},groups:qr}}setupSiteApp($){var Cr=this.apps[$.id],kr=()=>{var Fr;!Cr.errored&&this.yo.length&&(So.info("Processing "+this.yo.length+" events for site app with id "+$.id),this.yo.forEach((Lr=>Cr.processEvent==null?void 0:Cr.processEvent(Lr))),Cr.processedBuffer=!0),Object.values(this.apps).every((Lr=>Lr.processedBuffer||Lr.errored))&&((Fr=this.wo)==null||Fr.call(this))},Pr=!1,Rr=Fr=>{Cr.errored=!Fr,Cr.loaded=!0,So.info("Site app with id "+$.id+" "+(Fr?"loaded":"errored")),Pr&&kr()};try{var{processEvent:Ir}=$.init({posthog:this._instance,callback(Fr){Rr(Fr)}});Ir&&(Cr.processEvent=Ir),Pr=!0}catch(Fr){So.error(xo+$.id,Fr),Rr(!1)}if(Pr&&Cr.loaded)try{kr()}catch(Fr){So.error("Error while processing buffered events PostHog app with config id "+$.id,Fr),Cr.errored=!0}}_o(){var $=this.siteAppLoaders||[];for(var Cr of $)this.apps[Cr.id]={id:Cr.id,loaded:!1,errored:!1,processedBuffer:!1};for(var kr of $)this.setupSiteApp(kr)}Io($){if(Object.keys(this.apps).length!==0){var Cr=this.globalsForEvent($);for(var kr of Object.values(this.apps))try{kr.processEvent==null||kr.processEvent(Cr)}catch(Pr){So.error("Error while processing event "+$.event+" for site app "+kr.id,Pr)}}}onRemoteConfig($){var Cr,kr,Pr,Rr=this;if((Cr=this.siteAppLoaders)!=null&&Cr.length)return this.isEnabled?(this._o(),void this._instance.on("eventCaptured",(qr=>this.Io(qr)))):void So.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.');if((kr=this.wo)==null||kr.call(this),(Pr=$.siteApps)!=null&&Pr.length)if(this.isEnabled){var Ir=function(qr){var fa;h$3["__$$ph_site_app_"+qr]=Rr._instance,(fa=h$3.__PosthogExtensions__)==null||fa.loadSiteApp==null||fa.loadSiteApp(Rr._instance,Lr,(pa=>{if(pa)return So.error(xo+qr,pa)}))};for(var{id:Fr,url:Lr}of $.siteApps)Ir(Fr)}else So.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.')}}},sa={tracingHeaders:class{constructor($){this.Co=void 0,this.So=void 0,this.Js=()=>{var Cr,kr;C(this.Co)&&((Cr=h$3.__PosthogExtensions__)==null||(Cr=Cr.tracingHeadersPatchFns)==null||Cr._patchXHR(this._instance.config.__add_tracing_headers||[],this._instance.get_distinct_id(),this._instance.sessionManager)),C(this.So)&&((kr=h$3.__PosthogExtensions__)==null||(kr=kr.tracingHeadersPatchFns)==null||kr._patchFetch(this._instance.config.__add_tracing_headers||[],this._instance.get_distinct_id(),this._instance.sessionManager))},this._instance=$}initialize(){this.startIfEnabledOrStop()}ni($){var Cr,kr;(Cr=h$3.__PosthogExtensions__)!=null&&Cr.tracingHeadersPatchFns&&$(),(kr=h$3.__PosthogExtensions__)==null||kr.loadExternalDependency==null||kr.loadExternalDependency(this._instance,"tracing-headers",(Pr=>{if(Pr)return uo.error("failed to load script",Pr);$()}))}startIfEnabledOrStop(){var $,Cr;this._instance.config.__add_tracing_headers?this.ni(this.Js):(($=this.Co)==null||$.call(this),(Cr=this.So)==null||Cr.call(this),this.Co=void 0,this.So=void 0)}}},na=p$3({surveys:class{get Rt(){return this._instance.config}constructor($){this.ko=void 0,this._surveyManager=null,this.xo=!1,this.To=[],this.Ao=null,this._instance=$,this._surveyEventReceiver=null}initialize(){this.loadIfEnabled()}onRemoteConfig($){if(!this.Rt.disable_surveys){var Cr=$.surveys;if(D(Cr))return Zs.warn("Flags not loaded yet. Not loading surveys.");var kr=k(Cr);this.ko=kr?Cr.length>0:Cr,Zs.info("flags response received, isSurveysEnabled: "+this.ko),this.loadIfEnabled()}}reset(){localStorage.removeItem("lastSeenSurveyDate");for(var $=[],Cr=0;Cr<localStorage.length;Cr++){var kr=localStorage.key(Cr);(kr!=null&&kr.startsWith(tn)||kr!=null&&kr.startsWith("inProgressSurvey_"))&&$.push(kr)}$.forEach((Pr=>localStorage.removeItem(Pr)))}loadIfEnabled(){if(!this._surveyManager)if(this.xo)Zs.info("Already initializing surveys, skipping...");else if(this.Rt.disable_surveys)Zs.info(Oo);else if(this.Rt.cookieless_mode&&this._instance.consent.isOptedOut())Zs.info("Not loading surveys in cookieless mode without consent.");else{var $=h$3==null?void 0:h$3.__PosthogExtensions__;if($){if(!C(this.ko)||this.Rt.advanced_enable_surveys){var Cr=this.ko||this.Rt.advanced_enable_surveys;this.xo=!0;try{var kr=$.generateSurveys;if(kr)return void this.Eo(kr,Cr);var Pr=$.loadExternalDependency;if(!Pr)return void this.Ro(ue);Pr(this._instance,"surveys",(Rr=>{Rr||!$.generateSurveys?this.Ro("Could not load surveys script",Rr):this.Eo($.generateSurveys,Cr)}))}catch(Rr){throw this.Ro("Error initializing surveys",Rr),Rr}finally{this.xo=!1}}}else Zs.error("PostHog Extensions not found.")}}Eo($,Cr){this._surveyManager=$(this._instance,Cr),this._surveyEventReceiver=new ko(this._instance),Zs.info("Surveys loaded successfully"),this.No({isLoaded:!0})}Ro($,Cr){Zs.error($,Cr),this.No({isLoaded:!1,error:$})}onSurveysLoaded($){return this.To.push($),this._surveyManager&&this.No({isLoaded:!0}),()=>{this.To=this.To.filter((Cr=>Cr!==$))}}getSurveys($,Cr){if(Cr===void 0&&(Cr=!1),this.Rt.disable_surveys)return Zs.info(Oo),$([]);var kr,Pr=this._instance.get_property(Gi);if(Pr&&!Cr)return $(Pr,{isLoaded:!0});typeof Promise<"u"&&this.Ao?this.Ao.then((Rr=>{var{surveys:Ir,context:Fr}=Rr;return $(Ir,Fr)})):(typeof Promise<"u"&&(this.Ao=new Promise((Rr=>{kr=Rr}))),this._instance._send_request({url:this._instance.requestRouter.endpointFor("api","/api/surveys/?token="+this.Rt.token),method:"GET",timeout:this.Rt.surveys_request_timeout_ms,callback:Rr=>{var Ir;this.Ao=null;var Fr=Rr.statusCode;if(Fr!==200||!Rr.json){var Lr="Surveys API could not be loaded, status: "+Fr;Zs.error(Lr);var qr={isLoaded:!1,error:Lr};return $([],qr),void(kr==null||kr({surveys:[],context:qr}))}var fa,pa=Rr.json.surveys||[],ga=pa.filter((ya=>(function(ba){return!(!ba.start_date||ba.end_date)})(ya)&&((function(ba){var Aa;return!((Aa=ba.conditions)==null||(Aa=Aa.events)==null||(Aa=Aa.values)==null||!Aa.length)})(ya)||(function(ba){var Aa;return!((Aa=ba.conditions)==null||(Aa=Aa.actions)==null||(Aa=Aa.values)==null||!Aa.length)})(ya))));ga.length>0&&((fa=this._surveyEventReceiver)==null||fa.register(ga)),(Ir=this._instance.persistence)==null||Ir.register({[Gi]:pa});var xa={isLoaded:!0};$(pa,xa),kr==null||kr({surveys:pa,context:xa})}}))}No($){for(var Cr of this.To)try{if(!$.isLoaded)return Cr([],$);this.getSurveys(Cr)}catch(kr){Zs.error("Error in survey callback",kr)}}getActiveMatchingSurveys($,Cr){if(Cr===void 0&&(Cr=!1),!D(this._surveyManager))return this._surveyManager.getActiveMatchingSurveys($,Cr);Zs.warn("init was not called")}Mo($){var Cr=null;return this.getSurveys((kr=>{var Pr;Cr=(Pr=kr.find((Rr=>Rr.id===$)))!==null&&Pr!==void 0?Pr:null})),Cr}Fo($){if(D(this._surveyManager))return{eligible:!1,reason:Po};var Cr=typeof $=="string"?this.Mo($):$;return Cr?this._surveyManager.checkSurveyEligibility(Cr):{eligible:!1,reason:"Survey not found"}}canRenderSurvey($){if(D(this._surveyManager))return Zs.warn("init was not called"),{visible:!1,disabledReason:Po};var Cr=this.Fo($);return{visible:Cr.eligible,disabledReason:Cr.reason}}canRenderSurveyAsync($,Cr){return D(this._surveyManager)?(Zs.warn("init was not called"),Promise.resolve({visible:!1,disabledReason:Po})):new Promise((kr=>{this.getSurveys((Pr=>{var Rr,Ir=(Rr=Pr.find((Lr=>Lr.id===$)))!==null&&Rr!==void 0?Rr:null;if(Ir){var Fr=this.Fo(Ir);kr({visible:Fr.eligible,disabledReason:Fr.reason})}else kr({visible:!1,disabledReason:"Survey not found"})}),Cr)}))}renderSurvey($,Cr,kr){var Pr;if(D(this._surveyManager))Zs.warn("init was not called");else{var Rr=typeof $=="string"?this.Mo($):$;if(Rr!=null&&Rr.id)if(sn.includes(Rr.type)){var Ir=r$c==null?void 0:r$c.querySelector(Cr);if(Ir)return(Pr=Rr.appearance)!=null&&Pr.surveyPopupDelaySeconds?(Zs.info("Rendering survey "+Rr.id+" with delay of "+Rr.appearance.surveyPopupDelaySeconds+" seconds"),void setTimeout((()=>{var Fr,Lr;Zs.info("Rendering survey "+Rr.id+" with delay of "+((Fr=Rr.appearance)==null?void 0:Fr.surveyPopupDelaySeconds)+" seconds"),(Lr=this._surveyManager)==null||Lr.renderSurvey(Rr,Ir,kr),Zs.info("Survey "+Rr.id+" rendered")}),1e3*Rr.appearance.surveyPopupDelaySeconds)):void this._surveyManager.renderSurvey(Rr,Ir,kr);Zs.warn("Survey element not found")}else Zs.warn("Surveys of type "+Rr.type+" cannot be rendered in the app");else Zs.warn("Survey not found")}}displaySurvey($,Cr){var kr;if(D(this._surveyManager))Zs.warn("init was not called");else{var Pr=this.Mo($);if(Pr){var Rr=Pr;if((kr=Pr.appearance)!=null&&kr.surveyPopupDelaySeconds&&Cr.ignoreDelay&&(Rr=p$3({},Pr,{appearance:p$3({},Pr.appearance,{surveyPopupDelaySeconds:0})})),Cr.displayType!==Dr.Popover&&Cr.initialResponses&&Zs.warn("initialResponses is only supported for popover surveys. prefill will not be applied."),Cr.ignoreConditions===!1){var Ir=this.canRenderSurvey(Pr);if(!Ir.visible)return void Zs.warn("Survey is not eligible to be displayed: ",Ir.disabledReason)}Cr.displayType!==Dr.Inline?this._surveyManager.handlePopoverSurvey(Rr,Cr):this.renderSurvey(Rr,Cr.selector,Cr.properties)}else Zs.warn("Survey not found")}}cancelPendingSurvey($){D(this._surveyManager)?Zs.warn("init was not called"):this._surveyManager.cancelSurvey($)}handlePageUnload(){var $;($=this._surveyManager)==null||$.handlePageUnload()}}},Qo),oa={toolbar:class{constructor($){this.instance=$}Oo($){h$3.ph_toolbar_state=$}Po(){var $;return($=h$3.ph_toolbar_state)!==null&&$!==void 0?$:0}initialize(){return this.maybeLoadToolbar()}maybeLoadToolbar($,Cr,kr){if($===void 0&&($=void 0),Cr===void 0&&(Cr=void 0),kr===void 0&&(kr=void 0),Ie(this.instance.config)||!t$a||!r$c)return!1;$=$??t$a.location,kr=kr??t$a.history;try{if(!Cr){try{t$a.localStorage.setItem("test","test"),t$a.localStorage.removeItem("test")}catch{return!1}Cr=t$a==null?void 0:t$a.localStorage}var Pr,Rr=Io||lr($.hash,"__posthog")||lr($.hash,"state"),Ir=Rr?Te((()=>JSON.parse(atob(decodeURIComponent(Rr)))))||Te((()=>JSON.parse(decodeURIComponent(Rr)))):null;return Ir&&Ir.action==="ph_authorize"?((Pr=Ir).source="url",Pr&&Object.keys(Pr).length>0&&(Ir.desiredHash?$.hash=Ir.desiredHash:kr?kr.replaceState(kr.state,"",$.pathname+$.search):$.hash="")):((Pr=JSON.parse(Cr.getItem(Co)||"{}")).source="localstorage",delete Pr.userIntent),!(!Pr.token||this.instance.config.token!==Pr.token||(this.loadToolbar(Pr),0))}catch{return!1}}Lo($){var Cr=h$3.ph_load_toolbar||h$3.ph_load_editor;!D(Cr)&&P$1(Cr)?Cr($,this.instance):Fo.warn("No toolbar load function found")}loadToolbar($){var Cr=!(r$c==null||!r$c.getElementById(oe));if(!t$a||Cr)return!1;var kr=this.instance.requestRouter.region==="custom"&&this.instance.config.advanced_disable_toolbar_metrics,Pr=p$3({token:this.instance.config.token},$,{apiURL:this.instance.requestRouter.endpointFor("ui")},kr?{instrument:!1}:{});if(t$a.localStorage.setItem(Co,JSON.stringify(p$3({},Pr,{source:void 0}))),this.Po()===2)this.Lo(Pr);else if(this.Po()===0){var Rr;this.Oo(1),(Rr=h$3.__PosthogExtensions__)==null||Rr.loadExternalDependency==null||Rr.loadExternalDependency(this.instance,"toolbar",(Ir=>{if(Ir)return Fo.error("[Toolbar] Failed to load",Ir),void this.Oo(0);this.Oo(2),this.Lo(Pr)})),Oe(t$a,"turbolinks:load",(()=>{this.Oo(0),this.loadToolbar(Pr)}))}return!0}Do($){return this.loadToolbar($)}maybeLoadEditor($,Cr,kr){return $===void 0&&($=void 0),Cr===void 0&&(Cr=void 0),kr===void 0&&(kr=void 0),this.maybeLoadToolbar($,Cr,kr)}}},aa=p$3({experiments:Vo},Qo),la={conversations:class{constructor($){this.Bo=void 0,this._conversationsManager=null,this.jo=!1,this.qo=null,this._instance=$}initialize(){this.loadIfEnabled()}onRemoteConfig($){if(!this._instance.config.disable_conversations){var Cr=$.conversations;D(Cr)||(N$1(Cr)?this.Bo=Cr:(this.Bo=Cr.enabled,this.qo=Cr),this.loadIfEnabled())}}reset(){var $;($=this._conversationsManager)==null||$.reset(),this._conversationsManager=null,this.Bo=void 0,this.qo=null}loadIfEnabled(){if(!(this._conversationsManager||this.jo||this._instance.config.disable_conversations||Ie(this._instance.config)||this._instance.config.cookieless_mode&&this._instance.consent.isOptedOut())){var $=h$3==null?void 0:h$3.__PosthogExtensions__;if($&&!C(this.Bo)&&this.Bo)if(this.qo&&this.qo.token){this.jo=!0;try{var Cr=$.initConversations;if(Cr)return this.Zo(Cr),void(this.jo=!1);var kr=$.loadExternalDependency;if(!kr)return void this.$o(ue);kr(this._instance,"conversations",(Pr=>{Pr||!$.initConversations?this.$o("Could not load conversations script",Pr):this.Zo($.initConversations),this.jo=!1}))}catch(Pr){this.$o("Error initializing conversations",Pr),this.jo=!1}}else Wo.error("Conversations enabled but missing token in remote config.")}}Zo($){if(this.qo)try{this._conversationsManager=$(this.qo,this._instance),Wo.info("Conversations loaded successfully")}catch(Cr){this.$o("Error completing conversations initialization",Cr)}else Wo.error("Cannot complete initialization: remote config is null")}$o($,Cr){Wo.error($,Cr),this._conversationsManager=null,this.jo=!1}show(){this._conversationsManager?this._conversationsManager.show():Wo.warn("Conversations not loaded yet.")}hide(){this._conversationsManager&&this._conversationsManager.hide()}isAvailable(){return this.Bo===!0&&!M$1(this._conversationsManager)}isVisible(){var $,Cr;return($=(Cr=this._conversationsManager)==null?void 0:Cr.isVisible())!==null&&$!==void 0&&$}sendMessage($,Cr,kr){var Pr=this;return f$2((function*(){return Pr._conversationsManager?Pr._conversationsManager.sendMessage($,Cr,kr):(Wo.warn(Go),null)}))()}getMessages($,Cr){var kr=this;return f$2((function*(){return kr._conversationsManager?kr._conversationsManager.getMessages($,Cr):(Wo.warn(Go),null)}))()}markAsRead($){var Cr=this;return f$2((function*(){return Cr._conversationsManager?Cr._conversationsManager.markAsRead($):(Wo.warn(Go),null)}))()}getTickets($){var Cr=this;return f$2((function*(){return Cr._conversationsManager?Cr._conversationsManager.getTickets($):(Wo.warn(Go),null)}))()}requestRestoreLink($){var Cr=this;return f$2((function*(){return Cr._conversationsManager?Cr._conversationsManager.requestRestoreLink($):(Wo.warn(Go),null)}))()}restoreFromToken($){var Cr=this;return f$2((function*(){return Cr._conversationsManager?Cr._conversationsManager.restoreFromToken($):(Wo.warn(Go),null)}))()}restoreFromUrlToken(){var $=this;return f$2((function*(){return $._conversationsManager?$._conversationsManager.restoreFromUrlToken():(Wo.warn(Go),null)}))()}getCurrentTicketId(){var $,Cr;return($=(Cr=this._conversationsManager)==null?void 0:Cr.getCurrentTicketId())!==null&&$!==void 0?$:null}getWidgetSessionId(){var $,Cr;return($=(Cr=this._conversationsManager)==null?void 0:Cr.getWidgetSessionId())!==null&&$!==void 0?$:null}en(){var $;($=this._conversationsManager)==null||$.setIdentity()}rn(){var $;($=this._conversationsManager)==null||$.clearIdentity()}}},ua={logs:class{constructor($){var Cr;this.Vo=!1,this.Ho=!1,this.qt=wi("[logs]"),this.zo=[],this.Uo=0,this.Yo=0,this.Go=!1,this._instance=$,this._instance&&(Cr=this._instance.config.logs)!=null&&Cr.captureConsoleLogs&&(this.Vo=!0)}initialize(){this.loadIfEnabled()}onRemoteConfig($){var Cr,kr=(Cr=$.logs)==null?void 0:Cr.captureConsoleLogs;!D(kr)&&kr&&(this.Vo=!0,this.loadIfEnabled())}reset(){this.zo=[],this.Ni&&(clearTimeout(this.Ni),this.Ni=void 0),this.Uo=0,this.Yo=0,this.Go=!1}loadIfEnabled(){if(this.Vo&&!this.Ho){var $=h$3==null?void 0:h$3.__PosthogExtensions__;if($){var Cr=$.loadExternalDependency;Cr?Cr(this._instance,"logs",(kr=>{var Pr;kr||(Pr=$.logs)==null||!Pr.initializeLogs?this.qt.error("Could not load logs script",kr):($.logs.initializeLogs(this._instance),this.Ho=!0)})):this.qt.error(ue)}else this.qt.error("PostHog Extensions not found.")}}captureLog($){var Cr,kr,Pr,Rr,Ir,Fr;if(this._instance.is_capturing())if($&&$.body){var Lr=(Cr=(kr=this._instance.config.logs)==null?void 0:kr.flushIntervalMs)!==null&&Cr!==void 0?Cr:3e3,qr=(Pr=(Rr=this._instance.config.logs)==null?void 0:Rr.maxLogsPerInterval)!==null&&Pr!==void 0?Pr:1e3,fa=Date.now();if(Lr>fa-this.Yo||(this.Yo=fa,this.Uo=0,this.Go=!1),qr>this.Uo){this.Uo++;var pa=(function(ga,xa){var ya=ga.level||"info",{text:ba,number:Aa}=Yo[ya]||Jo,ka=String(Date.now())+"000000",Ea={};xa.distinctId&&(Ea.posthogDistinctId=xa.distinctId),xa.sessionId&&(Ea.sessionId=xa.sessionId),xa.currentUrl&&(Ea["url.full"]=xa.currentUrl),xa.activeFeatureFlags&&xa.activeFeatureFlags.length>0&&(Ea.feature_flags=xa.activeFeatureFlags);var Sa=p$3({},Ea,ga.attributes||{}),Ca={timeUnixNano:ka,observedTimeUnixNano:ka,severityNumber:Aa,severityText:ba,body:{stringValue:ga.body},attributes:Xo(Sa)};return ga.trace_id&&(Ca.traceId=ga.trace_id),ga.span_id&&(Ca.spanId=ga.span_id),C(ga.trace_flags)||(Ca.flags=ga.trace_flags),Ca})($,this.Wo());this.zo.push({record:pa}),((Ir=(Fr=this._instance.config.logs)==null?void 0:Fr.maxBufferSize)!==null&&Ir!==void 0?Ir:100)>this.zo.length?this.Xo():this.flushLogs()}else this.Go||(this.qt.warn("captureLog dropping logs: exceeded "+qr+" logs per "+Lr+"ms"),this.Go=!0)}else this.qt.warn("captureLog requires a body")}get logger(){return this.Jo||(this.Jo={trace:($,Cr)=>this.captureLog({body:$,level:"trace",attributes:Cr}),debug:($,Cr)=>this.captureLog({body:$,level:"debug",attributes:Cr}),info:($,Cr)=>this.captureLog({body:$,level:"info",attributes:Cr}),warn:($,Cr)=>this.captureLog({body:$,level:"warn",attributes:Cr}),error:($,Cr)=>this.captureLog({body:$,level:"error",attributes:Cr}),fatal:($,Cr)=>this.captureLog({body:$,level:"fatal",attributes:Cr})}),this.Jo}flushLogs($){if(this.Ni&&(clearTimeout(this.Ni),this.Ni=void 0),this.zo.length!==0){var Cr=this.zo;this.zo=[];var kr=this._instance.config.logs,Pr=p$3({"service.name":(kr==null?void 0:kr.serviceName)||"unknown_service"},(kr==null?void 0:kr.environment)&&{"deployment.environment":kr.environment},(kr==null?void 0:kr.serviceVersion)&&{"service.version":kr.serviceVersion},kr==null?void 0:kr.resourceAttributes),Rr=(function(Fr,Lr){return{resourceLogs:[{resource:{attributes:Xo(Lr)},scopeLogs:[{scope:{name:v$1.LIB_NAME},logRecords:Fr}]}]}})(Cr.map((Fr=>Fr.record)),Pr),Ir=this._instance.requestRouter.endpointFor("api","/i/v1/logs")+"?token="+encodeURIComponent(this._instance.config.token);this._instance.Dr({method:"POST",url:Ir,data:Rr,compression:"best-available",batchKey:"logs",transport:$})}}Xo(){var $,Cr;this.Ni||(this.Ni=setTimeout((()=>{this.Ni=void 0,this.flushLogs()}),($=(Cr=this._instance.config.logs)==null?void 0:Cr.flushIntervalMs)!==null&&$!==void 0?$:3e3))}Wo(){var $,Cr={lib:v$1.LIB_NAME};if(Cr.distinctId=this._instance.get_distinct_id(),this._instance.sessionManager){var{sessionId:kr}=this._instance.sessionManager.checkAndGetSessionAndWindowId(!0);Cr.sessionId=kr}if(h$3!=null&&($=h$3.location)!=null&&$.href&&(Cr.currentUrl=h$3.location.href),this._instance.featureFlags){var Pr=this._instance.featureFlags.getFlags();Pr&&Pr.length>0&&(Cr.activeFeatureFlags=Pr)}return Cr}}},ha=p$3({},Qo,Zo,ta,ia,ea,ra,na,sa,oa,aa,la,ua);Sn.__defaultExtensionClasses=p$3({},ha);var da,va=(da=hn[gn]=new Sn,(function(){function $(){$.done||($.done=!0,mn=!1,Ee(hn,(function(Cr){Cr._dom_loaded()})))}r$c!=null&&r$c.addEventListener?r$c.readyState==="complete"?$():Oe(r$c,"DOMContentLoaded",$,{capture:!1}):t$a&&yi.error("Browser doesn't support `document.addEventListener` so PostHog couldn't be initialized")})(),da),defaultPostHogInstance;function setDefaultPostHogInstance($){defaultPostHogInstance=$}function getDefaultPostHogInstance(){return defaultPostHogInstance}var PostHogContext=reactExports.createContext({get client(){return getDefaultPostHogInstance()},bootstrap:void 0});function isDeepEqual($,Cr,kr){if(kr===void 0&&(kr=new WeakMap),$===Cr)return!0;if(typeof $!="object"||$===null||typeof Cr!="object"||Cr===null)return!1;if(kr.has($)&&kr.get($)===Cr)return!0;kr.set($,Cr);var Pr=Object.keys($),Rr=Object.keys(Cr);if(Pr.length!==Rr.length)return!1;for(var Ir=0,Fr=Pr;Ir<Fr.length;Ir++){var Lr=Fr[Ir];if(!Rr.includes(Lr)||!isDeepEqual($[Lr],Cr[Lr],kr))return!1}return!0}function PostHogProvider($){var Cr,kr,Pr=$.children,Rr=$.client,Ir=$.apiKey,Fr=$.options,Lr=reactExports.useRef(null),qr=reactExports.useMemo(function(){if(Rr)return Ir&&console.warn("[PostHog.js] You have provided both `client` and `apiKey` to `PostHogProvider`. `apiKey` will be ignored in favour of `client`."),Fr&&console.warn("[PostHog.js] You have provided both `client` and `options` to `PostHogProvider`. `options` will be ignored in favour of `client`."),Rr;var fa=getDefaultPostHogInstance();return Ir||console.warn("[PostHog.js] No `apiKey` or `client` were provided to `PostHogProvider`. Using default global `window.posthog` instance. You must initialize it manually. This is not recommended behavior."),fa},[Rr,Ir,JSON.stringify(Fr)]);return reactExports.useEffect(function(){if(!Rr){var fa=getDefaultPostHogInstance(),pa=Lr.current;pa?(Ir!==pa.apiKey&&console.warn("[PostHog.js] You have provided a different `apiKey` to `PostHogProvider` than the one that was already initialized. This is not supported by our provider and we'll keep using the previous key. If you need to toggle between API Keys you need to control the `client` yourself and pass it in as a prop rather than an `apiKey` prop."),Fr&&!isDeepEqual(Fr,pa.options)&&fa.set_config(Fr),Lr.current={apiKey:Ir,options:Fr??{}}):(fa.__loaded&&console.warn("[PostHog.js] `posthog` was already loaded elsewhere. This may cause issues."),fa.init(Ir,Fr),Lr.current={apiKey:Ir,options:Fr??{}})}},[Rr,Ir,JSON.stringify(Fr)]),React.createElement(PostHogContext.Provider,{value:{client:qr,bootstrap:(Cr=Fr==null?void 0:Fr.bootstrap)!==null&&Cr!==void 0?Cr:(kr=Rr==null?void 0:Rr.config)===null||kr===void 0?void 0:kr.bootstrap}},Pr)}var isFunction$1=function($){return typeof $=="function"},usePostHog=function(){var $=reactExports.useContext(PostHogContext).client;return $},extendStatics=function($,Cr){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(kr,Pr){kr.__proto__=Pr}||function(kr,Pr){for(var Rr in Pr)Object.prototype.hasOwnProperty.call(Pr,Rr)&&(kr[Rr]=Pr[Rr])},extendStatics($,Cr)};function __extends($,Cr){if(typeof Cr!="function"&&Cr!==null)throw new TypeError("Class extends value "+String(Cr)+" is not a constructor or null");extendStatics($,Cr);function kr(){this.constructor=$}$.prototype=Cr===null?Object.create(Cr):(kr.prototype=Cr.prototype,new kr)}typeof SuppressedError=="function"&&SuppressedError;var INITIAL_STATE={componentStack:null,exceptionEvent:null,error:null},__POSTHOG_ERROR_MESSAGES={INVALID_FALLBACK:"[PostHog.js][PostHogErrorBoundary] Invalid fallback prop, provide a valid React element or a function that returns a valid React element."},PostHogErrorBoundary=(function($){__extends(Cr,$);function Cr(kr){var Pr=$.call(this,kr)||this;return Pr.state=INITIAL_STATE,Pr}return Cr.prototype.componentDidCatch=function(kr,Pr){var Rr=this.props.additionalProperties,Ir;isFunction$1(Rr)?Ir=Rr(kr):typeof Rr=="object"&&(Ir=Rr);var Fr=this.context.client,Lr=Fr.captureException(kr,Ir),qr=Pr.componentStack;this.setState({error:kr,componentStack:qr??null,exceptionEvent:Lr})},Cr.prototype.render=function(){var kr=this.props,Pr=kr.children,Rr=kr.fallback,Ir=this.state;if(Ir.componentStack==null)return isFunction$1(Pr)?Pr():Pr;var Fr=isFunction$1(Rr)?React.createElement(Rr,{error:Ir.error,componentStack:Ir.componentStack,exceptionEvent:Ir.exceptionEvent}):Rr;return React.isValidElement(Fr)?Fr:(console.warn(__POSTHOG_ERROR_MESSAGES.INVALID_FALLBACK),React.createElement(React.Fragment,null))},Cr.contextType=PostHogContext,Cr})(React.Component);setDefaultPostHogInstance(va);var client={},reactDom={exports:{}},reactDom_production_min={},scheduler={exports:{}},scheduler_production_min={};/**
|
|
19
19
|
* @license React
|
|
20
20
|
* scheduler.production.min.js
|
|
21
21
|
*
|
|
@@ -67,7 +67,7 @@ function useAtomValueWithDelay<Value>(
|
|
|
67
67
|
${Ca}px !important;
|
|
68
68
|
${Ta}px !important;
|
|
69
69
|
}
|
|
70
|
-
`),()=>{var ja;(ja=Lr.current)==null||ja.removeAttribute("data-motion-pop-id"),Ra.contains(Ia)&&Ra.removeChild(Ia)}},[Cr]),jsxRuntimeExports.jsx(PopChildMeasure,{isPresent:Cr,childRef:Lr,sizeRef:qr,pop:Ir,children:Ir===!1?$:reactExports.cloneElement($,{ref:ga})})}const PresenceChild=({children:$,initial:Cr,isPresent:kr,onExitComplete:Pr,custom:Rr,presenceAffectsLayout:Ir,mode:Fr,anchorX:Lr,anchorY:qr,root:fa})=>{const pa=useConstant(newChildrenMap),ga=reactExports.useId();let xa=!0,ya=reactExports.useMemo(()=>(xa=!1,{id:ga,initial:Cr,isPresent:kr,custom:Rr,onExitComplete:ba=>{pa.set(ba,!0);for(const Aa of pa.values())if(!Aa)return;Pr&&Pr()},register:ba=>(pa.set(ba,!1),()=>pa.delete(ba))}),[kr,pa,Pr]);return Ir&&xa&&(ya={...ya}),reactExports.useMemo(()=>{pa.forEach((ba,Aa)=>pa.set(Aa,!1))},[kr]),reactExports.useEffect(()=>{!kr&&!pa.size&&Pr&&Pr()},[kr]),$=jsxRuntimeExports.jsx(PopChild,{pop:Fr==="popLayout",isPresent:kr,anchorX:Lr,anchorY:qr,root:fa,children:$}),jsxRuntimeExports.jsx(PresenceContext.Provider,{value:ya,children:$})};function newChildrenMap(){return new Map}function usePresence$1($=!0){const Cr=reactExports.useContext(PresenceContext);if(Cr===null)return[!0,null];const{isPresent:kr,onExitComplete:Pr,register:Rr}=Cr,Ir=reactExports.useId();reactExports.useEffect(()=>{if($)return Rr(Ir)},[$]);const Fr=reactExports.useCallback(()=>$&&Pr&&Pr(Ir),[Ir,Pr,$]);return!kr&&Pr?[!1,Fr]:[!0]}const getChildKey=$=>$.key||"";function onlyElements($){const Cr=[];return reactExports.Children.forEach($,kr=>{reactExports.isValidElement(kr)&&Cr.push(kr)}),Cr}const AnimatePresence=({children:$,custom:Cr,initial:kr=!0,onExitComplete:Pr,presenceAffectsLayout:Rr=!0,mode:Ir="sync",propagate:Fr=!1,anchorX:Lr="left",anchorY:qr="top",root:fa})=>{const[pa,ga]=usePresence$1(Fr),xa=reactExports.useMemo(()=>onlyElements($),[$]),ya=Fr&&!pa?[]:xa.map(getChildKey),ba=reactExports.useRef(!0),Aa=reactExports.useRef(xa),ka=useConstant(()=>new Map),Ea=reactExports.useRef(new Set),[Sa,Ca]=reactExports.useState(xa),[Ta,Ia]=reactExports.useState(xa);useIsomorphicLayoutEffect$1(()=>{ba.current=!1,Aa.current=xa;for(let Oa=0;Oa<Ta.length;Oa++){const La=getChildKey(Ta[Oa]);ya.includes(La)?(ka.delete(La),Ea.current.delete(La)):ka.get(La)!==!0&&ka.set(La,!1)}},[Ta,ya.length,ya.join("-")]);const Ra=[];if(xa!==Sa){let Oa=[...xa];for(let La=0;La<Ta.length;La++){const Ha=Ta[La],Wa=getChildKey(Ha);ya.includes(Wa)||(Oa.splice(La,0,Ha),Ra.push(Ha))}return Ir==="wait"&&Ra.length&&(Oa=Ra),Ia(onlyElements(Oa)),Ca(xa),null}const{forceRender:ja}=reactExports.useContext(LayoutGroupContext);return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:Ta.map(Oa=>{const La=getChildKey(Oa),Ha=Fr&&!pa?!1:xa===Ta||ya.includes(La),Wa=()=>{if(Ea.current.has(La))return;if(ka.has(La))Ea.current.add(La),ka.set(La,!0);else return;let Ja=!0;ka.forEach(Ya=>{Ya||(Ja=!1)}),Ja&&(ja==null||ja(),Ia(Aa.current),Fr&&(ga==null||ga()),Pr&&Pr())};return jsxRuntimeExports.jsx(PresenceChild,{isPresent:Ha,initial:!ba.current||kr?void 0:!1,custom:Cr,presenceAffectsLayout:Rr,mode:Ir,root:fa,onExitComplete:Ha?void 0:Wa,anchorX:Lr,anchorY:qr,children:Oa},La)})})},LazyContext=reactExports.createContext({strict:!1}),featureProps={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]};let isInitialized=!1;function initFeatureDefinitions(){if(isInitialized)return;const $={};for(const Cr in featureProps)$[Cr]={isEnabled:kr=>featureProps[Cr].some(Pr=>!!kr[Pr])};setFeatureDefinitions($),isInitialized=!0}function getInitializedFeatureDefinitions(){return initFeatureDefinitions(),getFeatureDefinitions()}function loadFeatures($){const Cr=getInitializedFeatureDefinitions();for(const kr in $)Cr[kr]={...Cr[kr],...$[kr]};setFeatureDefinitions(Cr)}const validMotionProps=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function isValidMotionProp($){return $.startsWith("while")||$.startsWith("drag")&&$!=="draggable"||$.startsWith("layout")||$.startsWith("onTap")||$.startsWith("onPan")||$.startsWith("onLayout")||validMotionProps.has($)}let shouldForward=$=>!isValidMotionProp($);function loadExternalIsValidProp($){typeof $=="function"&&(shouldForward=Cr=>Cr.startsWith("on")?!isValidMotionProp(Cr):$(Cr))}try{loadExternalIsValidProp(require("@emotion/is-prop-valid").default)}catch{}function filterProps($,Cr,kr){const Pr={};for(const Rr in $)Rr==="values"&&typeof $.values=="object"||isMotionValue($[Rr])||(shouldForward(Rr)||kr===!0&&isValidMotionProp(Rr)||!Cr&&!isValidMotionProp(Rr)||$.draggable&&Rr.startsWith("onDrag"))&&(Pr[Rr]=$[Rr]);return Pr}const MotionContext=reactExports.createContext({});function getCurrentTreeVariants($,Cr){if(isControllingVariants($)){const{initial:kr,animate:Pr}=$;return{initial:kr===!1||isVariantLabel(kr)?kr:void 0,animate:isVariantLabel(Pr)?Pr:void 0}}return $.inherit!==!1?Cr:{}}function useCreateMotionContext($){const{initial:Cr,animate:kr}=getCurrentTreeVariants($,reactExports.useContext(MotionContext));return reactExports.useMemo(()=>({initial:Cr,animate:kr}),[variantLabelsAsDependency(Cr),variantLabelsAsDependency(kr)])}function variantLabelsAsDependency($){return Array.isArray($)?$.join(" "):$}const createHtmlRenderState=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function copyRawValuesOnly($,Cr,kr){for(const Pr in Cr)!isMotionValue(Cr[Pr])&&!isForcedMotionValue(Pr,kr)&&($[Pr]=Cr[Pr])}function useInitialMotionValues({transformTemplate:$},Cr){return reactExports.useMemo(()=>{const kr=createHtmlRenderState();return buildHTMLStyles(kr,Cr,$),Object.assign({},kr.vars,kr.style)},[Cr])}function useStyle($,Cr){const kr=$.style||{},Pr={};return copyRawValuesOnly(Pr,kr,$),Object.assign(Pr,useInitialMotionValues($,Cr)),Pr}function useHTMLProps($,Cr){const kr={},Pr=useStyle($,Cr);return $.drag&&$.dragListener!==!1&&(kr.draggable=!1,Pr.userSelect=Pr.WebkitUserSelect=Pr.WebkitTouchCallout="none",Pr.touchAction=$.drag===!0?"none":`pan-${$.drag==="x"?"y":"x"}`),$.tabIndex===void 0&&($.onTap||$.onTapStart||$.whileTap)&&(kr.tabIndex=0),kr.style=Pr,kr}const createSvgRenderState=()=>({...createHtmlRenderState(),attrs:{}});function useSVGProps($,Cr,kr,Pr){const Rr=reactExports.useMemo(()=>{const Ir=createSvgRenderState();return buildSVGAttrs(Ir,Cr,isSVGTag(Pr),$.transformTemplate,$.style),{...Ir.attrs,style:{...Ir.style}}},[Cr]);if($.style){const Ir={};copyRawValuesOnly(Ir,$.style,$),Rr.style={...Ir,...Rr.style}}return Rr}const lowercaseSVGElements=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function isSVGComponent($){return typeof $!="string"||$.includes("-")?!1:!!(lowercaseSVGElements.indexOf($)>-1||/[A-Z]/u.test($))}function useRender($,Cr,kr,{latestValues:Pr},Rr,Ir=!1,Fr){const qr=(Fr??isSVGComponent($)?useSVGProps:useHTMLProps)(Cr,Pr,Rr,$),fa=filterProps(Cr,typeof $=="string",Ir),pa=$!==reactExports.Fragment?{...fa,...qr,ref:kr}:{},{children:ga}=Cr,xa=reactExports.useMemo(()=>isMotionValue(ga)?ga.get():ga,[ga]);return reactExports.createElement($,{...pa,children:xa})}function makeState({scrapeMotionValuesFromProps:$,createRenderState:Cr},kr,Pr,Rr){return{latestValues:makeLatestValues(kr,Pr,Rr,$),renderState:Cr()}}function makeLatestValues($,Cr,kr,Pr){const Rr={},Ir=Pr($,{});for(const xa in Ir)Rr[xa]=resolveMotionValue(Ir[xa]);let{initial:Fr,animate:Lr}=$;const qr=isControllingVariants($),fa=isVariantNode($);Cr&&fa&&!qr&&$.inherit!==!1&&(Fr===void 0&&(Fr=Cr.initial),Lr===void 0&&(Lr=Cr.animate));let pa=kr?kr.initial===!1:!1;pa=pa||Fr===!1;const ga=pa?Lr:Fr;if(ga&&typeof ga!="boolean"&&!isAnimationControls(ga)){const xa=Array.isArray(ga)?ga:[ga];for(let ya=0;ya<xa.length;ya++){const ba=resolveVariantFromProps($,xa[ya]);if(ba){const{transitionEnd:Aa,transition:ka,...Ea}=ba;for(const Sa in Ea){let Ca=Ea[Sa];if(Array.isArray(Ca)){const Ta=pa?Ca.length-1:0;Ca=Ca[Ta]}Ca!==null&&(Rr[Sa]=Ca)}for(const Sa in Aa)Rr[Sa]=Aa[Sa]}}}return Rr}const makeUseVisualState=$=>(Cr,kr)=>{const Pr=reactExports.useContext(MotionContext),Rr=reactExports.useContext(PresenceContext),Ir=()=>makeState($,Cr,Pr,Rr);return kr?Ir():useConstant(Ir)},useHTMLVisualState=makeUseVisualState({scrapeMotionValuesFromProps:scrapeMotionValuesFromProps$1,createRenderState:createHtmlRenderState}),useSVGVisualState=makeUseVisualState({scrapeMotionValuesFromProps,createRenderState:createSvgRenderState}),motionComponentSymbol=Symbol.for("motionComponentSymbol");function useMotionRef($,Cr,kr){const Pr=reactExports.useRef(kr);reactExports.useInsertionEffect(()=>{Pr.current=kr});const Rr=reactExports.useRef(null);return reactExports.useCallback(Ir=>{var Lr;Ir&&((Lr=$.onMount)==null||Lr.call($,Ir));const Fr=Pr.current;if(typeof Fr=="function")if(Ir){const qr=Fr(Ir);typeof qr=="function"&&(Rr.current=qr)}else Rr.current?(Rr.current(),Rr.current=null):Fr(Ir);else Fr&&(Fr.current=Ir);Cr&&(Ir?Cr.mount(Ir):Cr.unmount())},[Cr])}const SwitchLayoutGroupContext=reactExports.createContext({});function isRefObject($){return $&&typeof $=="object"&&Object.prototype.hasOwnProperty.call($,"current")}function useVisualElement($,Cr,kr,Pr,Rr,Ir){var Ca,Ta;const{visualElement:Fr}=reactExports.useContext(MotionContext),Lr=reactExports.useContext(LazyContext),qr=reactExports.useContext(PresenceContext),fa=reactExports.useContext(MotionConfigContext),pa=fa.reducedMotion,ga=fa.skipAnimations,xa=reactExports.useRef(null),ya=reactExports.useRef(!1);Pr=Pr||Lr.renderer,!xa.current&&Pr&&(xa.current=Pr($,{visualState:Cr,parent:Fr,props:kr,presenceContext:qr,blockInitialAnimation:qr?qr.initial===!1:!1,reducedMotionConfig:pa,skipAnimations:ga,isSVG:Ir}),ya.current&&xa.current&&(xa.current.manuallyAnimateOnMount=!0));const ba=xa.current,Aa=reactExports.useContext(SwitchLayoutGroupContext);ba&&!ba.projection&&Rr&&(ba.type==="html"||ba.type==="svg")&&createProjectionNode(xa.current,kr,Rr,Aa);const ka=reactExports.useRef(!1);reactExports.useInsertionEffect(()=>{ba&&ka.current&&ba.update(kr,qr)});const Ea=kr[optimizedAppearDataAttribute],Sa=reactExports.useRef(!!Ea&&typeof window<"u"&&!((Ca=window.MotionHandoffIsComplete)!=null&&Ca.call(window,Ea))&&((Ta=window.MotionHasOptimisedAnimation)==null?void 0:Ta.call(window,Ea)));return useIsomorphicLayoutEffect$1(()=>{ya.current=!0,ba&&(ka.current=!0,window.MotionIsMounted=!0,ba.updateFeatures(),ba.scheduleRenderMicrotask(),Sa.current&&ba.animationState&&ba.animationState.animateChanges())}),reactExports.useEffect(()=>{ba&&(!Sa.current&&ba.animationState&&ba.animationState.animateChanges(),Sa.current&&(queueMicrotask(()=>{var Ia;(Ia=window.MotionHandoffMarkAsComplete)==null||Ia.call(window,Ea)}),Sa.current=!1),ba.enteringChildren=void 0)}),ba}function createProjectionNode($,Cr,kr,Pr){const{layoutId:Rr,layout:Ir,drag:Fr,dragConstraints:Lr,layoutScroll:qr,layoutRoot:fa,layoutAnchor:pa,layoutCrossfade:ga}=Cr;$.projection=new kr($.latestValues,Cr["data-framer-portal-id"]?void 0:getClosestProjectingNode($.parent)),$.projection.setOptions({layoutId:Rr,layout:Ir,alwaysMeasureLayout:!!Fr||Lr&&isRefObject(Lr),visualElement:$,animationType:typeof Ir=="string"?Ir:"both",initialPromotionConfig:Pr,crossfade:ga,layoutScroll:qr,layoutRoot:fa,layoutAnchor:pa})}function getClosestProjectingNode($){if($)return $.options.allowProjection!==!1?$.projection:getClosestProjectingNode($.parent)}function createMotionComponent($,{forwardMotionProps:Cr=!1,type:kr}={},Pr,Rr){Pr&&loadFeatures(Pr);const Ir=kr?kr==="svg":isSVGComponent($),Fr=Ir?useSVGVisualState:useHTMLVisualState;function Lr(fa,pa){let ga;const xa={...reactExports.useContext(MotionConfigContext),...fa,layoutId:useLayoutId(fa)},{isStatic:ya}=xa,ba=useCreateMotionContext(fa),Aa=Fr(fa,ya);if(!ya&&typeof window<"u"){useStrictMode();const ka=getProjectionFunctionality(xa);ga=ka.MeasureLayout,ba.visualElement=useVisualElement($,Aa,xa,Rr,ka.ProjectionNode,Ir)}return jsxRuntimeExports.jsxs(MotionContext.Provider,{value:ba,children:[ga&&ba.visualElement?jsxRuntimeExports.jsx(ga,{visualElement:ba.visualElement,...xa}):null,useRender($,fa,useMotionRef(Aa,ba.visualElement,pa),Aa,ya,Cr,Ir)]})}Lr.displayName=`motion.${typeof $=="string"?$:`create(${$.displayName??$.name??""})`}`;const qr=reactExports.forwardRef(Lr);return qr[motionComponentSymbol]=$,qr}function useLayoutId({layoutId:$}){const Cr=reactExports.useContext(LayoutGroupContext).id;return Cr&&$!==void 0?Cr+"-"+$:$}function useStrictMode($,Cr){reactExports.useContext(LazyContext).strict}function getProjectionFunctionality($){const Cr=getInitializedFeatureDefinitions(),{drag:kr,layout:Pr}=Cr;if(!kr&&!Pr)return{};const Rr={...kr,...Pr};return{MeasureLayout:kr!=null&&kr.isEnabled($)||Pr!=null&&Pr.isEnabled($)?Rr.MeasureLayout:void 0,ProjectionNode:Rr.ProjectionNode}}function createMotionProxy($,Cr){if(typeof Proxy>"u")return createMotionComponent;const kr=new Map,Pr=(Ir,Fr)=>createMotionComponent(Ir,Fr,$,Cr),Rr=(Ir,Fr)=>Pr(Ir,Fr);return new Proxy(Rr,{get:(Ir,Fr)=>Fr==="create"?Pr:(kr.has(Fr)||kr.set(Fr,createMotionComponent(Fr,void 0,$,Cr)),kr.get(Fr))})}const createDomVisualElement=($,Cr)=>Cr.isSVG??isSVGComponent($)?new SVGVisualElement(Cr):new HTMLVisualElement(Cr,{allowProjection:$!==reactExports.Fragment});class AnimationFeature extends Feature{constructor(Cr){super(Cr),Cr.animationState||(Cr.animationState=createAnimationState(Cr))}updateAnimationControlsSubscription(){const{animate:Cr}=this.node.getProps();isAnimationControls(Cr)&&(this.unmountControls=Cr.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:Cr}=this.node.getProps(),{animate:kr}=this.node.prevProps||{};Cr!==kr&&this.updateAnimationControlsSubscription()}unmount(){var Cr;this.node.animationState.reset(),(Cr=this.unmountControls)==null||Cr.call(this)}}let id=0;class ExitAnimationFeature extends Feature{constructor(){super(...arguments),this.id=id++,this.isExitComplete=!1}update(){var Ir;if(!this.node.presenceContext)return;const{isPresent:Cr,onExitComplete:kr}=this.node.presenceContext,{isPresent:Pr}=this.node.prevPresenceContext||{};if(!this.node.animationState||Cr===Pr)return;if(Cr&&Pr===!1){if(this.isExitComplete){const{initial:Fr,custom:Lr}=this.node.getProps();if(typeof Fr=="string"){const qr=resolveVariant(this.node,Fr,Lr);if(qr){const{transition:fa,transitionEnd:pa,...ga}=qr;for(const xa in ga)(Ir=this.node.getValue(xa))==null||Ir.jump(ga[xa])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}const Rr=this.node.animationState.setActive("exit",!Cr);kr&&!Cr&&Rr.then(()=>{this.isExitComplete=!0,kr(this.id)})}mount(){const{register:Cr,onExitComplete:kr}=this.node.presenceContext||{};kr&&kr(this.id),Cr&&(this.unmount=Cr(this.id))}unmount(){}}const animations={animation:{Feature:AnimationFeature},exit:{Feature:ExitAnimationFeature}};function extractEventInfo($){return{point:{x:$.pageX,y:$.pageY}}}const addPointerInfo=$=>Cr=>isPrimaryPointer(Cr)&&$(Cr,extractEventInfo(Cr));function addPointerEvent($,Cr,kr,Pr){return addDomEvent($,Cr,addPointerInfo(kr),Pr)}const getContextWindow=({current:$})=>$?$.ownerDocument.defaultView:null,distance$1=($,Cr)=>Math.abs($-Cr);function distance2D($,Cr){const kr=distance$1($.x,Cr.x),Pr=distance$1($.y,Cr.y);return Math.sqrt(kr**2+Pr**2)}const overflowStyles=new Set(["auto","scroll"]);class PanSession{constructor(Cr,kr,{transformPagePoint:Pr,contextWindow:Rr=window,dragSnapToOrigin:Ir=!1,distanceThreshold:Fr=3,element:Lr}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=ya=>{this.handleScroll(ya.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=transformPoint(this.lastRawMoveEventInfo,this.transformPagePoint));const ya=getPanInfo(this.lastMoveEventInfo,this.history),ba=this.startEvent!==null,Aa=distance2D(ya.offset,{x:0,y:0})>=this.distanceThreshold;if(!ba&&!Aa)return;const{point:ka}=ya,{timestamp:Ea}=frameData;this.history.push({...ka,timestamp:Ea});const{onStart:Sa,onMove:Ca}=this.handlers;ba||(Sa&&Sa(this.lastMoveEvent,ya),this.startEvent=this.lastMoveEvent),Ca&&Ca(this.lastMoveEvent,ya)},this.handlePointerMove=(ya,ba)=>{this.lastMoveEvent=ya,this.lastRawMoveEventInfo=ba,this.lastMoveEventInfo=transformPoint(ba,this.transformPagePoint),frame.update(this.updatePoint,!0)},this.handlePointerUp=(ya,ba)=>{this.end();const{onEnd:Aa,onSessionEnd:ka,resumeAnimation:Ea}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&Ea&&Ea(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const Sa=getPanInfo(ya.type==="pointercancel"?this.lastMoveEventInfo:transformPoint(ba,this.transformPagePoint),this.history);this.startEvent&&Aa&&Aa(ya,Sa),ka&&ka(ya,Sa)},!isPrimaryPointer(Cr))return;this.dragSnapToOrigin=Ir,this.handlers=kr,this.transformPagePoint=Pr,this.distanceThreshold=Fr,this.contextWindow=Rr||window;const qr=extractEventInfo(Cr),fa=transformPoint(qr,this.transformPagePoint),{point:pa}=fa,{timestamp:ga}=frameData;this.history=[{...pa,timestamp:ga}];const{onSessionStart:xa}=kr;xa&&xa(Cr,getPanInfo(fa,this.history)),this.removeListeners=pipe(addPointerEvent(this.contextWindow,"pointermove",this.handlePointerMove),addPointerEvent(this.contextWindow,"pointerup",this.handlePointerUp),addPointerEvent(this.contextWindow,"pointercancel",this.handlePointerUp)),Lr&&this.startScrollTracking(Lr)}startScrollTracking(Cr){let kr=Cr.parentElement;for(;kr;){const Pr=getComputedStyle(kr);(overflowStyles.has(Pr.overflowX)||overflowStyles.has(Pr.overflowY))&&this.scrollPositions.set(kr,{x:kr.scrollLeft,y:kr.scrollTop}),kr=kr.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(Cr){const kr=this.scrollPositions.get(Cr);if(!kr)return;const Pr=Cr===window,Rr=Pr?{x:window.scrollX,y:window.scrollY}:{x:Cr.scrollLeft,y:Cr.scrollTop},Ir={x:Rr.x-kr.x,y:Rr.y-kr.y};Ir.x===0&&Ir.y===0||(Pr?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=Ir.x,this.lastMoveEventInfo.point.y+=Ir.y):this.history.length>0&&(this.history[0].x-=Ir.x,this.history[0].y-=Ir.y),this.scrollPositions.set(Cr,Rr),frame.update(this.updatePoint,!0))}updateHandlers(Cr){this.handlers=Cr}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),cancelFrame(this.updatePoint)}}function transformPoint($,Cr){return Cr?{point:Cr($.point)}:$}function subtractPoint($,Cr){return{x:$.x-Cr.x,y:$.y-Cr.y}}function getPanInfo({point:$},Cr){return{point:$,delta:subtractPoint($,lastDevicePoint(Cr)),offset:subtractPoint($,startDevicePoint(Cr)),velocity:getVelocity(Cr,.1)}}function startDevicePoint($){return $[0]}function lastDevicePoint($){return $[$.length-1]}function getVelocity($,Cr){if($.length<2)return{x:0,y:0};let kr=$.length-1,Pr=null;const Rr=lastDevicePoint($);for(;kr>=0&&(Pr=$[kr],!(Rr.timestamp-Pr.timestamp>secondsToMilliseconds(Cr)));)kr--;if(!Pr)return{x:0,y:0};Pr===$[0]&&$.length>2&&Rr.timestamp-Pr.timestamp>secondsToMilliseconds(Cr)*2&&(Pr=$[1]);const Ir=millisecondsToSeconds(Rr.timestamp-Pr.timestamp);if(Ir===0)return{x:0,y:0};const Fr={x:(Rr.x-Pr.x)/Ir,y:(Rr.y-Pr.y)/Ir};return Fr.x===1/0&&(Fr.x=0),Fr.y===1/0&&(Fr.y=0),Fr}function applyConstraints($,{min:Cr,max:kr},Pr){return Cr!==void 0&&$<Cr?$=Pr?mixNumber$1(Cr,$,Pr.min):Math.max($,Cr):kr!==void 0&&$>kr&&($=Pr?mixNumber$1(kr,$,Pr.max):Math.min($,kr)),$}function calcRelativeAxisConstraints($,Cr,kr){return{min:Cr!==void 0?$.min+Cr:void 0,max:kr!==void 0?$.max+kr-($.max-$.min):void 0}}function calcRelativeConstraints($,{top:Cr,left:kr,bottom:Pr,right:Rr}){return{x:calcRelativeAxisConstraints($.x,kr,Rr),y:calcRelativeAxisConstraints($.y,Cr,Pr)}}function calcViewportAxisConstraints($,Cr){let kr=Cr.min-$.min,Pr=Cr.max-$.max;return Cr.max-Cr.min<$.max-$.min&&([kr,Pr]=[Pr,kr]),{min:kr,max:Pr}}function calcViewportConstraints($,Cr){return{x:calcViewportAxisConstraints($.x,Cr.x),y:calcViewportAxisConstraints($.y,Cr.y)}}function calcOrigin($,Cr){let kr=.5;const Pr=calcLength($),Rr=calcLength(Cr);return Rr>Pr?kr=progress(Cr.min,Cr.max-Pr,$.min):Pr>Rr&&(kr=progress($.min,$.max-Rr,Cr.min)),clamp$2(0,1,kr)}function rebaseAxisConstraints($,Cr){const kr={};return Cr.min!==void 0&&(kr.min=Cr.min-$.min),Cr.max!==void 0&&(kr.max=Cr.max-$.min),kr}const defaultElastic=.35;function resolveDragElastic($=defaultElastic){return $===!1?$=0:$===!0&&($=defaultElastic),{x:resolveAxisElastic($,"left","right"),y:resolveAxisElastic($,"top","bottom")}}function resolveAxisElastic($,Cr,kr){return{min:resolvePointElastic($,Cr),max:resolvePointElastic($,kr)}}function resolvePointElastic($,Cr){return typeof $=="number"?$:$[Cr]||0}const elementDragControls=new WeakMap;class VisualElementDragControls{constructor(Cr){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=createBox(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=Cr}start(Cr,{snapToCursor:kr=!1,distanceThreshold:Pr}={}){const{presenceContext:Rr}=this.visualElement;if(Rr&&Rr.isPresent===!1)return;const Ir=ga=>{kr&&this.snapToCursor(extractEventInfo(ga).point),this.stopAnimation()},Fr=(ga,xa)=>{const{drag:ya,dragPropagation:ba,onDragStart:Aa}=this.getProps();if(ya&&!ba&&(this.openDragLock&&this.openDragLock(),this.openDragLock=setDragLock(ya),!this.openDragLock))return;this.latestPointerEvent=ga,this.latestPanInfo=xa,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),eachAxis(Ea=>{let Sa=this.getAxisMotionValue(Ea).get()||0;if(percent.test(Sa)){const{projection:Ca}=this.visualElement;if(Ca&&Ca.layout){const Ta=Ca.layout.layoutBox[Ea];Ta&&(Sa=calcLength(Ta)*(parseFloat(Sa)/100))}}this.originPoint[Ea]=Sa}),Aa&&frame.update(()=>Aa(ga,xa),!1,!0),addValueToWillChange(this.visualElement,"transform");const{animationState:ka}=this.visualElement;ka&&ka.setActive("whileDrag",!0)},Lr=(ga,xa)=>{this.latestPointerEvent=ga,this.latestPanInfo=xa;const{dragPropagation:ya,dragDirectionLock:ba,onDirectionLock:Aa,onDrag:ka}=this.getProps();if(!ya&&!this.openDragLock)return;const{offset:Ea}=xa;if(ba&&this.currentDirection===null){this.currentDirection=getCurrentDirection(Ea),this.currentDirection!==null&&Aa&&Aa(this.currentDirection);return}this.updateAxis("x",xa.point,Ea),this.updateAxis("y",xa.point,Ea),this.visualElement.render(),ka&&frame.update(()=>ka(ga,xa),!1,!0)},qr=(ga,xa)=>{this.latestPointerEvent=ga,this.latestPanInfo=xa,this.stop(ga,xa),this.latestPointerEvent=null,this.latestPanInfo=null},fa=()=>{const{dragSnapToOrigin:ga}=this.getProps();(ga||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:pa}=this.getProps();this.panSession=new PanSession(Cr,{onSessionStart:Ir,onStart:Fr,onMove:Lr,onSessionEnd:qr,resumeAnimation:fa},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:pa,distanceThreshold:Pr,contextWindow:getContextWindow(this.visualElement),element:this.visualElement.current})}stop(Cr,kr){const Pr=Cr||this.latestPointerEvent,Rr=kr||this.latestPanInfo,Ir=this.isDragging;if(this.cancel(),!Ir||!Rr||!Pr)return;const{velocity:Fr}=Rr;this.startAnimation(Fr);const{onDragEnd:Lr}=this.getProps();Lr&&frame.postRender(()=>Lr(Pr,Rr))}cancel(){this.isDragging=!1;const{projection:Cr,animationState:kr}=this.visualElement;Cr&&(Cr.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:Pr}=this.getProps();!Pr&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),kr&&kr.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(Cr,kr,Pr){const{drag:Rr}=this.getProps();if(!Pr||!shouldDrag(Cr,Rr,this.currentDirection))return;const Ir=this.getAxisMotionValue(Cr);let Fr=this.originPoint[Cr]+Pr[Cr];this.constraints&&this.constraints[Cr]&&(Fr=applyConstraints(Fr,this.constraints[Cr],this.elastic[Cr])),Ir.set(Fr)}resolveConstraints(){var Ir;const{dragConstraints:Cr,dragElastic:kr}=this.getProps(),Pr=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(Ir=this.visualElement.projection)==null?void 0:Ir.layout,Rr=this.constraints;Cr&&isRefObject(Cr)?this.constraints||(this.constraints=this.resolveRefConstraints()):Cr&&Pr?this.constraints=calcRelativeConstraints(Pr.layoutBox,Cr):this.constraints=!1,this.elastic=resolveDragElastic(kr),Rr!==this.constraints&&!isRefObject(Cr)&&Pr&&this.constraints&&!this.hasMutatedConstraints&&eachAxis(Fr=>{this.constraints!==!1&&this.getAxisMotionValue(Fr)&&(this.constraints[Fr]=rebaseAxisConstraints(Pr.layoutBox[Fr],this.constraints[Fr]))})}resolveRefConstraints(){const{dragConstraints:Cr,onMeasureDragConstraints:kr}=this.getProps();if(!Cr||!isRefObject(Cr))return!1;const Pr=Cr.current,{projection:Rr}=this.visualElement;if(!Rr||!Rr.layout)return!1;const Ir=measurePageBox(Pr,Rr.root,this.visualElement.getTransformPagePoint());let Fr=calcViewportConstraints(Rr.layout.layoutBox,Ir);if(kr){const Lr=kr(convertBoxToBoundingBox(Fr));this.hasMutatedConstraints=!!Lr,Lr&&(Fr=convertBoundingBoxToBox(Lr))}return Fr}startAnimation(Cr){const{drag:kr,dragMomentum:Pr,dragElastic:Rr,dragTransition:Ir,dragSnapToOrigin:Fr,onDragTransitionEnd:Lr}=this.getProps(),qr=this.constraints||{},fa=eachAxis(pa=>{if(!shouldDrag(pa,kr,this.currentDirection))return;let ga=qr&&qr[pa]||{};(Fr===!0||Fr===pa)&&(ga={min:0,max:0});const xa=Rr?200:1e6,ya=Rr?40:1e7,ba={type:"inertia",velocity:Pr?Cr[pa]:0,bounceStiffness:xa,bounceDamping:ya,timeConstant:750,restDelta:1,restSpeed:10,...Ir,...ga};return this.startAxisValueAnimation(pa,ba)});return Promise.all(fa).then(Lr)}startAxisValueAnimation(Cr,kr){const Pr=this.getAxisMotionValue(Cr);return addValueToWillChange(this.visualElement,Cr),Pr.start(animateMotionValue(Cr,Pr,0,kr,this.visualElement,!1))}stopAnimation(){eachAxis(Cr=>this.getAxisMotionValue(Cr).stop())}getAxisMotionValue(Cr){const kr=`_drag${Cr.toUpperCase()}`,Pr=this.visualElement.getProps(),Rr=Pr[kr];return Rr||this.visualElement.getValue(Cr,(Pr.initial?Pr.initial[Cr]:void 0)||0)}snapToCursor(Cr){eachAxis(kr=>{const{drag:Pr}=this.getProps();if(!shouldDrag(kr,Pr,this.currentDirection))return;const{projection:Rr}=this.visualElement,Ir=this.getAxisMotionValue(kr);if(Rr&&Rr.layout){const{min:Fr,max:Lr}=Rr.layout.layoutBox[kr],qr=Ir.get()||0;Ir.set(Cr[kr]-mixNumber$1(Fr,Lr,.5)+qr)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:Cr,dragConstraints:kr}=this.getProps(),{projection:Pr}=this.visualElement;if(!isRefObject(kr)||!Pr||!this.constraints)return;this.stopAnimation();const Rr={x:0,y:0};eachAxis(Fr=>{const Lr=this.getAxisMotionValue(Fr);if(Lr&&this.constraints!==!1){const qr=Lr.get();Rr[Fr]=calcOrigin({min:qr,max:qr},this.constraints[Fr])}});const{transformTemplate:Ir}=this.visualElement.getProps();this.visualElement.current.style.transform=Ir?Ir({},""):"none",Pr.root&&Pr.root.updateScroll(),Pr.updateLayout(),this.constraints=!1,this.resolveConstraints(),eachAxis(Fr=>{if(!shouldDrag(Fr,Cr,null))return;const Lr=this.getAxisMotionValue(Fr),{min:qr,max:fa}=this.constraints[Fr];Lr.set(mixNumber$1(qr,fa,Rr[Fr]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;elementDragControls.set(this.visualElement,this);const Cr=this.visualElement.current,kr=addPointerEvent(Cr,"pointerdown",fa=>{const{drag:pa,dragListener:ga=!0}=this.getProps(),xa=fa.target,ya=xa!==Cr&&isElementTextInput(xa);pa&&ga&&!ya&&this.start(fa)});let Pr;const Rr=()=>{const{dragConstraints:fa}=this.getProps();isRefObject(fa)&&fa.current&&(this.constraints=this.resolveRefConstraints(),Pr||(Pr=startResizeObservers(Cr,fa.current,()=>this.scalePositionWithinConstraints())))},{projection:Ir}=this.visualElement,Fr=Ir.addEventListener("measure",Rr);Ir&&!Ir.layout&&(Ir.root&&Ir.root.updateScroll(),Ir.updateLayout()),frame.read(Rr);const Lr=addDomEvent(window,"resize",()=>this.scalePositionWithinConstraints()),qr=Ir.addEventListener("didUpdate",(({delta:fa,hasLayoutChanged:pa})=>{this.isDragging&&pa&&(eachAxis(ga=>{const xa=this.getAxisMotionValue(ga);xa&&(this.originPoint[ga]+=fa[ga].translate,xa.set(xa.get()+fa[ga].translate))}),this.visualElement.render())}));return()=>{Lr(),kr(),Fr(),qr&&qr(),Pr&&Pr()}}getProps(){const Cr=this.visualElement.getProps(),{drag:kr=!1,dragDirectionLock:Pr=!1,dragPropagation:Rr=!1,dragConstraints:Ir=!1,dragElastic:Fr=defaultElastic,dragMomentum:Lr=!0}=Cr;return{...Cr,drag:kr,dragDirectionLock:Pr,dragPropagation:Rr,dragConstraints:Ir,dragElastic:Fr,dragMomentum:Lr}}}function skipFirstCall($){let Cr=!0;return()=>{if(Cr){Cr=!1;return}$()}}function startResizeObservers($,Cr,kr){const Pr=resize($,skipFirstCall(kr)),Rr=resize(Cr,skipFirstCall(kr));return()=>{Pr(),Rr()}}function shouldDrag($,Cr,kr){return(Cr===!0||Cr===$)&&(kr===null||kr===$)}function getCurrentDirection($,Cr=10){let kr=null;return Math.abs($.y)>Cr?kr="y":Math.abs($.x)>Cr&&(kr="x"),kr}class DragGesture extends Feature{constructor(Cr){super(Cr),this.removeGroupControls=noop$1,this.removeListeners=noop$1,this.controls=new VisualElementDragControls(Cr)}mount(){const{dragControls:Cr}=this.node.getProps();Cr&&(this.removeGroupControls=Cr.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||noop$1}update(){const{dragControls:Cr}=this.node.getProps(),{dragControls:kr}=this.node.prevProps||{};Cr!==kr&&(this.removeGroupControls(),Cr&&(this.removeGroupControls=Cr.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const asyncHandler=$=>(Cr,kr)=>{$&&frame.update(()=>$(Cr,kr),!1,!0)};class PanGesture extends Feature{constructor(){super(...arguments),this.removePointerDownListener=noop$1}onPointerDown(Cr){this.session=new PanSession(Cr,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:getContextWindow(this.node)})}createPanHandlers(){const{onPanSessionStart:Cr,onPanStart:kr,onPan:Pr,onPanEnd:Rr}=this.node.getProps();return{onSessionStart:asyncHandler(Cr),onStart:asyncHandler(kr),onMove:asyncHandler(Pr),onEnd:(Ir,Fr)=>{delete this.session,Rr&&frame.postRender(()=>Rr(Ir,Fr))}}}mount(){this.removePointerDownListener=addPointerEvent(this.node.current,"pointerdown",Cr=>this.onPointerDown(Cr))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let hasTakenAnySnapshot=!1;class MeasureLayoutWithContext extends reactExports.Component{componentDidMount(){const{visualElement:Cr,layoutGroup:kr,switchLayoutGroup:Pr,layoutId:Rr}=this.props,{projection:Ir}=Cr;Ir&&(kr.group&&kr.group.add(Ir),Pr&&Pr.register&&Rr&&Pr.register(Ir),hasTakenAnySnapshot&&Ir.root.didUpdate(),Ir.addEventListener("animationComplete",()=>{this.safeToRemove()}),Ir.setOptions({...Ir.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),globalProjectionState.hasEverUpdated=!0}getSnapshotBeforeUpdate(Cr){const{layoutDependency:kr,visualElement:Pr,drag:Rr,isPresent:Ir}=this.props,{projection:Fr}=Pr;return Fr&&(Fr.isPresent=Ir,Cr.layoutDependency!==kr&&Fr.setOptions({...Fr.options,layoutDependency:kr}),hasTakenAnySnapshot=!0,Rr||Cr.layoutDependency!==kr||kr===void 0||Cr.isPresent!==Ir?Fr.willUpdate():this.safeToRemove(),Cr.isPresent!==Ir&&(Ir?Fr.promote():Fr.relegate()||frame.postRender(()=>{const Lr=Fr.getStack();(!Lr||!Lr.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{visualElement:Cr,layoutAnchor:kr}=this.props,{projection:Pr}=Cr;Pr&&(Pr.options.layoutAnchor=kr,Pr.root.didUpdate(),microtask.postRender(()=>{!Pr.currentAnimation&&Pr.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:Cr,layoutGroup:kr,switchLayoutGroup:Pr}=this.props,{projection:Rr}=Cr;hasTakenAnySnapshot=!0,Rr&&(Rr.scheduleCheckAfterUnmount(),kr&&kr.group&&kr.group.remove(Rr),Pr&&Pr.deregister&&Pr.deregister(Rr))}safeToRemove(){const{safeToRemove:Cr}=this.props;Cr&&Cr()}render(){return null}}function MeasureLayout($){const[Cr,kr]=usePresence$1(),Pr=reactExports.useContext(LayoutGroupContext);return jsxRuntimeExports.jsx(MeasureLayoutWithContext,{...$,layoutGroup:Pr,switchLayoutGroup:reactExports.useContext(SwitchLayoutGroupContext),isPresent:Cr,safeToRemove:kr})}const drag={pan:{Feature:PanGesture},drag:{Feature:DragGesture,ProjectionNode:HTMLProjectionNode,MeasureLayout}};function handleHoverEvent($,Cr,kr){const{props:Pr}=$;$.animationState&&Pr.whileHover&&$.animationState.setActive("whileHover",kr==="Start");const Rr="onHover"+kr,Ir=Pr[Rr];Ir&&frame.postRender(()=>Ir(Cr,extractEventInfo(Cr)))}class HoverGesture extends Feature{mount(){const{current:Cr}=this.node;Cr&&(this.unmount=hover(Cr,(kr,Pr)=>(handleHoverEvent(this.node,Pr,"Start"),Rr=>handleHoverEvent(this.node,Rr,"End"))))}unmount(){}}class FocusGesture extends Feature{constructor(){super(...arguments),this.isActive=!1}onFocus(){let Cr=!1;try{Cr=this.node.current.matches(":focus-visible")}catch{Cr=!0}!Cr||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=pipe(addDomEvent(this.node.current,"focus",()=>this.onFocus()),addDomEvent(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function handlePressEvent($,Cr,kr){const{props:Pr}=$;if($.current instanceof HTMLButtonElement&&$.current.disabled)return;$.animationState&&Pr.whileTap&&$.animationState.setActive("whileTap",kr==="Start");const Rr="onTap"+(kr==="End"?"":kr),Ir=Pr[Rr];Ir&&frame.postRender(()=>Ir(Cr,extractEventInfo(Cr)))}class PressGesture extends Feature{mount(){const{current:Cr}=this.node;if(!Cr)return;const{globalTapTarget:kr,propagate:Pr}=this.node.props;this.unmount=press(Cr,(Rr,Ir)=>(handlePressEvent(this.node,Ir,"Start"),(Fr,{success:Lr})=>handlePressEvent(this.node,Fr,Lr?"End":"Cancel")),{useGlobalTarget:kr,stopPropagation:(Pr==null?void 0:Pr.tap)===!1})}unmount(){}}const observerCallbacks=new WeakMap,observers=new WeakMap,fireObserverCallback=$=>{const Cr=observerCallbacks.get($.target);Cr&&Cr($)},fireAllObserverCallbacks=$=>{$.forEach(fireObserverCallback)};function initIntersectionObserver({root:$,...Cr}){const kr=$||document;observers.has(kr)||observers.set(kr,{});const Pr=observers.get(kr),Rr=JSON.stringify(Cr);return Pr[Rr]||(Pr[Rr]=new IntersectionObserver(fireAllObserverCallbacks,{root:$,...Cr})),Pr[Rr]}function observeIntersection($,Cr,kr){const Pr=initIntersectionObserver(Cr);return observerCallbacks.set($,kr),Pr.observe($),()=>{observerCallbacks.delete($),Pr.unobserve($)}}const thresholdNames={some:0,all:1};class InViewFeature extends Feature{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){var qr;(qr=this.stopObserver)==null||qr.call(this);const{viewport:Cr={}}=this.node.getProps(),{root:kr,margin:Pr,amount:Rr="some",once:Ir}=Cr,Fr={root:kr?kr.current:void 0,rootMargin:Pr,threshold:typeof Rr=="number"?Rr:thresholdNames[Rr]},Lr=fa=>{const{isIntersecting:pa}=fa;if(this.isInView===pa||(this.isInView=pa,Ir&&!pa&&this.hasEnteredView))return;pa&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",pa);const{onViewportEnter:ga,onViewportLeave:xa}=this.node.getProps(),ya=pa?ga:xa;ya&&ya(fa)};this.stopObserver=observeIntersection(this.node.current,Fr,Lr)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:Cr,prevProps:kr}=this.node;["amount","margin","root"].some(hasViewportOptionChanged(Cr,kr))&&this.startObserver()}unmount(){var Cr;(Cr=this.stopObserver)==null||Cr.call(this),this.hasEnteredView=!1,this.isInView=!1}}function hasViewportOptionChanged({viewport:$={}},{viewport:Cr={}}={}){return kr=>$[kr]!==Cr[kr]}const gestureAnimations={inView:{Feature:InViewFeature},tap:{Feature:PressGesture},focus:{Feature:FocusGesture},hover:{Feature:HoverGesture}},layout={layout:{ProjectionNode:HTMLProjectionNode,MeasureLayout}},featureBundle={...animations,...gestureAnimations,...drag,...layout},motion=createMotionProxy(featureBundle,createDomVisualElement);function stopAnimation($){$.values.forEach(Cr=>Cr.stop())}function setVariants($,Cr){[...Cr].reverse().forEach(Pr=>{const Rr=$.getVariant(Pr);Rr&&setTarget($,Rr),$.variantChildren&&$.variantChildren.forEach(Ir=>{setVariants(Ir,Cr)})})}function setValues($,Cr){if(Array.isArray(Cr))return setVariants($,Cr);if(typeof Cr=="string")return setVariants($,[Cr]);setTarget($,Cr)}function animationControls(){const $=new Set,Cr={subscribe(kr){return $.add(kr),()=>void $.delete(kr)},start(kr,Pr){const Rr=[];return $.forEach(Ir=>{Rr.push(animateVisualElement(Ir,kr,{transitionOverride:Pr}))}),Promise.all(Rr)},set(kr){return $.forEach(Pr=>{setValues(Pr,kr)})},stop(){$.forEach(kr=>{stopAnimation(kr)})},mount(){return()=>{Cr.stop()}}};return Cr}function useAnimationControls(){const $=useConstant(animationControls);return useIsomorphicLayoutEffect$1($.mount,[]),$}var reactDomExports=requireReactDom();const ReactDOM=getDefaultExportFromCjs(reactDomExports);function __insertCSS($){if(typeof document>"u")return;let Cr=document.head||document.getElementsByTagName("head")[0],kr=document.createElement("style");kr.type="text/css",Cr.appendChild(kr),kr.styleSheet?kr.styleSheet.cssText=$:kr.appendChild(document.createTextNode($))}const getAsset=$=>{switch($){case"success":return SuccessIcon;case"info":return InfoIcon;case"warning":return WarningIcon;case"error":return ErrorIcon;default:return null}},bars=Array(12).fill(0),Loader=({visible:$,className:Cr})=>React.createElement("div",{className:["sonner-loading-wrapper",Cr].filter(Boolean).join(" "),"data-visible":$},React.createElement("div",{className:"sonner-spinner"},bars.map((kr,Pr)=>React.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${Pr}`})))),SuccessIcon=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},React.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),WarningIcon=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},React.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),InfoIcon=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},React.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),ErrorIcon=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},React.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),CloseIcon=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},React.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),React.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),useIsDocumentHidden=()=>{const[$,Cr]=React.useState(document.hidden);return React.useEffect(()=>{const kr=()=>{Cr(document.hidden)};return document.addEventListener("visibilitychange",kr),()=>window.removeEventListener("visibilitychange",kr)},[]),$};let toastsCounter=1;class Observer{constructor(){this.subscribe=Cr=>(this.subscribers.push(Cr),()=>{const kr=this.subscribers.indexOf(Cr);this.subscribers.splice(kr,1)}),this.publish=Cr=>{this.subscribers.forEach(kr=>kr(Cr))},this.addToast=Cr=>{this.publish(Cr),this.toasts=[...this.toasts,Cr]},this.create=Cr=>{var kr;const{message:Pr,...Rr}=Cr,Ir=typeof(Cr==null?void 0:Cr.id)=="number"||((kr=Cr.id)==null?void 0:kr.length)>0?Cr.id:toastsCounter++,Fr=this.toasts.find(qr=>qr.id===Ir),Lr=Cr.dismissible===void 0?!0:Cr.dismissible;return this.dismissedToasts.has(Ir)&&this.dismissedToasts.delete(Ir),Fr?this.toasts=this.toasts.map(qr=>qr.id===Ir?(this.publish({...qr,...Cr,id:Ir,title:Pr}),{...qr,...Cr,id:Ir,dismissible:Lr,title:Pr}):qr):this.addToast({title:Pr,...Rr,dismissible:Lr,id:Ir}),Ir},this.dismiss=Cr=>(Cr?(this.dismissedToasts.add(Cr),requestAnimationFrame(()=>this.subscribers.forEach(kr=>kr({id:Cr,dismiss:!0})))):this.toasts.forEach(kr=>{this.subscribers.forEach(Pr=>Pr({id:kr.id,dismiss:!0}))}),Cr),this.message=(Cr,kr)=>this.create({...kr,message:Cr}),this.error=(Cr,kr)=>this.create({...kr,message:Cr,type:"error"}),this.success=(Cr,kr)=>this.create({...kr,type:"success",message:Cr}),this.info=(Cr,kr)=>this.create({...kr,type:"info",message:Cr}),this.warning=(Cr,kr)=>this.create({...kr,type:"warning",message:Cr}),this.loading=(Cr,kr)=>this.create({...kr,type:"loading",message:Cr}),this.promise=(Cr,kr)=>{if(!kr)return;let Pr;kr.loading!==void 0&&(Pr=this.create({...kr,promise:Cr,type:"loading",message:kr.loading,description:typeof kr.description!="function"?kr.description:void 0}));const Rr=Promise.resolve(Cr instanceof Function?Cr():Cr);let Ir=Pr!==void 0,Fr;const Lr=Rr.then(async fa=>{if(Fr=["resolve",fa],React.isValidElement(fa))Ir=!1,this.create({id:Pr,type:"default",message:fa});else if(isHttpResponse(fa)&&!fa.ok){Ir=!1;const ga=typeof kr.error=="function"?await kr.error(`HTTP error! status: ${fa.status}`):kr.error,xa=typeof kr.description=="function"?await kr.description(`HTTP error! status: ${fa.status}`):kr.description,ba=typeof ga=="object"&&!React.isValidElement(ga)?ga:{message:ga};this.create({id:Pr,type:"error",description:xa,...ba})}else if(fa instanceof Error){Ir=!1;const ga=typeof kr.error=="function"?await kr.error(fa):kr.error,xa=typeof kr.description=="function"?await kr.description(fa):kr.description,ba=typeof ga=="object"&&!React.isValidElement(ga)?ga:{message:ga};this.create({id:Pr,type:"error",description:xa,...ba})}else if(kr.success!==void 0){Ir=!1;const ga=typeof kr.success=="function"?await kr.success(fa):kr.success,xa=typeof kr.description=="function"?await kr.description(fa):kr.description,ba=typeof ga=="object"&&!React.isValidElement(ga)?ga:{message:ga};this.create({id:Pr,type:"success",description:xa,...ba})}}).catch(async fa=>{if(Fr=["reject",fa],kr.error!==void 0){Ir=!1;const pa=typeof kr.error=="function"?await kr.error(fa):kr.error,ga=typeof kr.description=="function"?await kr.description(fa):kr.description,ya=typeof pa=="object"&&!React.isValidElement(pa)?pa:{message:pa};this.create({id:Pr,type:"error",description:ga,...ya})}}).finally(()=>{Ir&&(this.dismiss(Pr),Pr=void 0),kr.finally==null||kr.finally.call(kr)}),qr=()=>new Promise((fa,pa)=>Lr.then(()=>Fr[0]==="reject"?pa(Fr[1]):fa(Fr[1])).catch(pa));return typeof Pr!="string"&&typeof Pr!="number"?{unwrap:qr}:Object.assign(Pr,{unwrap:qr})},this.custom=(Cr,kr)=>{const Pr=(kr==null?void 0:kr.id)||toastsCounter++;return this.create({jsx:Cr(Pr),id:Pr,...kr}),Pr},this.getActiveToasts=()=>this.toasts.filter(Cr=>!this.dismissedToasts.has(Cr.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const ToastState=new Observer,toastFunction=($,Cr)=>{const kr=(Cr==null?void 0:Cr.id)||toastsCounter++;return ToastState.addToast({title:$,...Cr,id:kr}),kr},isHttpResponse=$=>$&&typeof $=="object"&&"ok"in $&&typeof $.ok=="boolean"&&"status"in $&&typeof $.status=="number",basicToast=toastFunction,getHistory=()=>ToastState.toasts,getToasts=()=>ToastState.getActiveToasts(),toast=Object.assign(basicToast,{success:ToastState.success,info:ToastState.info,warning:ToastState.warning,error:ToastState.error,custom:ToastState.custom,message:ToastState.message,promise:ToastState.promise,dismiss:ToastState.dismiss,loading:ToastState.loading},{getHistory,getToasts});__insertCSS("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function isAction($){return $.label!==void 0}const VISIBLE_TOASTS_AMOUNT=3,VIEWPORT_OFFSET="24px",MOBILE_VIEWPORT_OFFSET="16px",TOAST_LIFETIME=4e3,TOAST_WIDTH=356,GAP=14,SWIPE_THRESHOLD=45,TIME_BEFORE_UNMOUNT=200;function cn$1(...$){return $.filter(Boolean).join(" ")}function getDefaultSwipeDirections($){const[Cr,kr]=$.split("-"),Pr=[];return Cr&&Pr.push(Cr),kr&&Pr.push(kr),Pr}const Toast=$=>{var Cr,kr,Pr,Rr,Ir,Fr,Lr,qr,fa;const{invert:pa,toast:ga,unstyled:xa,interacting:ya,setHeights:ba,visibleToasts:Aa,heights:ka,index:Ea,toasts:Sa,expanded:Ca,removeToast:Ta,defaultRichColors:Ia,closeButton:Ra,style:ja,cancelButtonStyle:Oa,actionButtonStyle:La,className:Ha="",descriptionClassName:Wa="",duration:Ja,position:Ya,gap:Za,expandByDefault:Qa,classNames:Na,icons:Ka,closeButtonAriaLabel:Fa="Close toast"}=$,[Va,Da]=React.useState(null),[Ba,Ga]=React.useState(null),[Ua,qa]=React.useState(!1),[$a,tl]=React.useState(!1),[ll,ol]=React.useState(!1),[_a,nl]=React.useState(!1),[il,ul]=React.useState(!1),[sl,rl]=React.useState(0),[xl,El]=React.useState(0),Cl=React.useRef(ga.duration||Ja||TOAST_LIFETIME),Ml=React.useRef(null),hl=React.useRef(null),yl=Ea===0,Tl=Ea+1<=Aa,jl=ga.type,Dl=ga.dismissible!==!1,Bl=ga.className||"",$l=ga.descriptionClassName||"",fl=React.useMemo(()=>ka.findIndex(Ql=>Ql.toastId===ga.id)||0,[ka,ga.id]),vl=React.useMemo(()=>{var Ql;return(Ql=ga.closeButton)!=null?Ql:Ra},[ga.closeButton,Ra]),Pl=React.useMemo(()=>ga.duration||Ja||TOAST_LIFETIME,[ga.duration,Ja]),Hl=React.useRef(0),Wl=React.useRef(0),sc=React.useRef(0),Ac=React.useRef(null),[kc,Uc]=Ya.split("-"),Nc=React.useMemo(()=>ka.reduce((Ql,pc,bc)=>bc>=fl?Ql:Ql+pc.height,0),[ka,fl]),cc=useIsDocumentHidden(),Oc=ga.invert||pa,gc=jl==="loading";Wl.current=React.useMemo(()=>fl*Za+Nc,[fl,Nc]),React.useEffect(()=>{Cl.current=Pl},[Pl]),React.useEffect(()=>{qa(!0)},[]),React.useEffect(()=>{const Ql=hl.current;if(Ql){const pc=Ql.getBoundingClientRect().height;return El(pc),ba(bc=>[{toastId:ga.id,height:pc,position:ga.position},...bc]),()=>ba(bc=>bc.filter(Sl=>Sl.toastId!==ga.id))}},[ba,ga.id]),React.useLayoutEffect(()=>{if(!Ua)return;const Ql=hl.current,pc=Ql.style.height;Ql.style.height="auto";const bc=Ql.getBoundingClientRect().height;Ql.style.height=pc,El(bc),ba(Sl=>Sl.find(Vl=>Vl.toastId===ga.id)?Sl.map(Vl=>Vl.toastId===ga.id?{...Vl,height:bc}:Vl):[{toastId:ga.id,height:bc,position:ga.position},...Sl])},[Ua,ga.title,ga.description,ba,ga.id,ga.jsx,ga.action,ga.cancel]);const Gc=React.useCallback(()=>{tl(!0),rl(Wl.current),ba(Ql=>Ql.filter(pc=>pc.toastId!==ga.id)),setTimeout(()=>{Ta(ga)},TIME_BEFORE_UNMOUNT)},[ga,Ta,ba,Wl]);React.useEffect(()=>{if(ga.promise&&jl==="loading"||ga.duration===1/0||ga.type==="loading")return;let Ql;return Ca||ya||cc?(()=>{if(sc.current<Hl.current){const Sl=new Date().getTime()-Hl.current;Cl.current=Cl.current-Sl}sc.current=new Date().getTime()})():(()=>{Cl.current!==1/0&&(Hl.current=new Date().getTime(),Ql=setTimeout(()=>{ga.onAutoClose==null||ga.onAutoClose.call(ga,ga),Gc()},Cl.current))})(),()=>clearTimeout(Ql)},[Ca,ya,ga,jl,cc,Gc]),React.useEffect(()=>{ga.delete&&(Gc(),ga.onDismiss==null||ga.onDismiss.call(ga,ga))},[Gc,ga.delete]);function Xu(){var Ql;if(Ka!=null&&Ka.loading){var pc;return React.createElement("div",{className:cn$1(Na==null?void 0:Na.loader,ga==null||(pc=ga.classNames)==null?void 0:pc.loader,"sonner-loader"),"data-visible":jl==="loading"},Ka.loading)}return React.createElement(Loader,{className:cn$1(Na==null?void 0:Na.loader,ga==null||(Ql=ga.classNames)==null?void 0:Ql.loader),visible:jl==="loading"})}const Zc=ga.icon||(Ka==null?void 0:Ka[jl])||getAsset(jl);var eu,au;return React.createElement("li",{tabIndex:0,ref:hl,className:cn$1(Ha,Bl,Na==null?void 0:Na.toast,ga==null||(Cr=ga.classNames)==null?void 0:Cr.toast,Na==null?void 0:Na.default,Na==null?void 0:Na[jl],ga==null||(kr=ga.classNames)==null?void 0:kr[jl]),"data-sonner-toast":"","data-rich-colors":(eu=ga.richColors)!=null?eu:Ia,"data-styled":!(ga.jsx||ga.unstyled||xa),"data-mounted":Ua,"data-promise":!!ga.promise,"data-swiped":il,"data-removed":$a,"data-visible":Tl,"data-y-position":kc,"data-x-position":Uc,"data-index":Ea,"data-front":yl,"data-swiping":ll,"data-dismissible":Dl,"data-type":jl,"data-invert":Oc,"data-swipe-out":_a,"data-swipe-direction":Ba,"data-expanded":!!(Ca||Qa&&Ua),"data-testid":ga.testId,style:{"--index":Ea,"--toasts-before":Ea,"--z-index":Sa.length-Ea,"--offset":`${$a?sl:Wl.current}px`,"--initial-height":Qa?"auto":`${xl}px`,...ja,...ga.style},onDragEnd:()=>{ol(!1),Da(null),Ac.current=null},onPointerDown:Ql=>{Ql.button!==2&&(gc||!Dl||(Ml.current=new Date,rl(Wl.current),Ql.target.setPointerCapture(Ql.pointerId),Ql.target.tagName!=="BUTTON"&&(ol(!0),Ac.current={x:Ql.clientX,y:Ql.clientY})))},onPointerUp:()=>{var Ql,pc,bc;if(_a||!Dl)return;Ac.current=null;const Sl=Number(((Ql=hl.current)==null?void 0:Ql.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Il=Number(((pc=hl.current)==null?void 0:pc.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Vl=new Date().getTime()-((bc=Ml.current)==null?void 0:bc.getTime()),zl=Va==="x"?Sl:Il,Zl=Math.abs(zl)/Vl;if(Math.abs(zl)>=SWIPE_THRESHOLD||Zl>.11){rl(Wl.current),ga.onDismiss==null||ga.onDismiss.call(ga,ga),Ga(Va==="x"?Sl>0?"right":"left":Il>0?"down":"up"),Gc(),nl(!0);return}else{var Jl,ec;(Jl=hl.current)==null||Jl.style.setProperty("--swipe-amount-x","0px"),(ec=hl.current)==null||ec.style.setProperty("--swipe-amount-y","0px")}ul(!1),ol(!1),Da(null)},onPointerMove:Ql=>{var pc,bc,Sl;if(!Ac.current||!Dl||((pc=window.getSelection())==null?void 0:pc.toString().length)>0)return;const Vl=Ql.clientY-Ac.current.y,zl=Ql.clientX-Ac.current.x;var Zl;const Jl=(Zl=$.swipeDirections)!=null?Zl:getDefaultSwipeDirections(Ya);!Va&&(Math.abs(zl)>1||Math.abs(Vl)>1)&&Da(Math.abs(zl)>Math.abs(Vl)?"x":"y");let ec={x:0,y:0};const ac=rc=>1/(1.5+Math.abs(rc)/20);if(Va==="y"){if(Jl.includes("top")||Jl.includes("bottom"))if(Jl.includes("top")&&Vl<0||Jl.includes("bottom")&&Vl>0)ec.y=Vl;else{const rc=Vl*ac(Vl);ec.y=Math.abs(rc)<Math.abs(Vl)?rc:Vl}}else if(Va==="x"&&(Jl.includes("left")||Jl.includes("right")))if(Jl.includes("left")&&zl<0||Jl.includes("right")&&zl>0)ec.x=zl;else{const rc=zl*ac(zl);ec.x=Math.abs(rc)<Math.abs(zl)?rc:zl}(Math.abs(ec.x)>0||Math.abs(ec.y)>0)&&ul(!0),(bc=hl.current)==null||bc.style.setProperty("--swipe-amount-x",`${ec.x}px`),(Sl=hl.current)==null||Sl.style.setProperty("--swipe-amount-y",`${ec.y}px`)}},vl&&!ga.jsx&&jl!=="loading"?React.createElement("button",{"aria-label":Fa,"data-disabled":gc,"data-close-button":!0,onClick:gc||!Dl?()=>{}:()=>{Gc(),ga.onDismiss==null||ga.onDismiss.call(ga,ga)},className:cn$1(Na==null?void 0:Na.closeButton,ga==null||(Pr=ga.classNames)==null?void 0:Pr.closeButton)},(au=Ka==null?void 0:Ka.close)!=null?au:CloseIcon):null,(jl||ga.icon||ga.promise)&&ga.icon!==null&&((Ka==null?void 0:Ka[jl])!==null||ga.icon)?React.createElement("div",{"data-icon":"",className:cn$1(Na==null?void 0:Na.icon,ga==null||(Rr=ga.classNames)==null?void 0:Rr.icon)},ga.promise||ga.type==="loading"&&!ga.icon?ga.icon||Xu():null,ga.type!=="loading"?Zc:null):null,React.createElement("div",{"data-content":"",className:cn$1(Na==null?void 0:Na.content,ga==null||(Ir=ga.classNames)==null?void 0:Ir.content)},React.createElement("div",{"data-title":"",className:cn$1(Na==null?void 0:Na.title,ga==null||(Fr=ga.classNames)==null?void 0:Fr.title)},ga.jsx?ga.jsx:typeof ga.title=="function"?ga.title():ga.title),ga.description?React.createElement("div",{"data-description":"",className:cn$1(Wa,$l,Na==null?void 0:Na.description,ga==null||(Lr=ga.classNames)==null?void 0:Lr.description)},typeof ga.description=="function"?ga.description():ga.description):null),React.isValidElement(ga.cancel)?ga.cancel:ga.cancel&&isAction(ga.cancel)?React.createElement("button",{"data-button":!0,"data-cancel":!0,style:ga.cancelButtonStyle||Oa,onClick:Ql=>{isAction(ga.cancel)&&Dl&&(ga.cancel.onClick==null||ga.cancel.onClick.call(ga.cancel,Ql),Gc())},className:cn$1(Na==null?void 0:Na.cancelButton,ga==null||(qr=ga.classNames)==null?void 0:qr.cancelButton)},ga.cancel.label):null,React.isValidElement(ga.action)?ga.action:ga.action&&isAction(ga.action)?React.createElement("button",{"data-button":!0,"data-action":!0,style:ga.actionButtonStyle||La,onClick:Ql=>{isAction(ga.action)&&(ga.action.onClick==null||ga.action.onClick.call(ga.action,Ql),!Ql.defaultPrevented&&Gc())},className:cn$1(Na==null?void 0:Na.actionButton,ga==null||(fa=ga.classNames)==null?void 0:fa.actionButton)},ga.action.label):null)};function getDocumentDirection(){if(typeof window>"u"||typeof document>"u")return"ltr";const $=document.documentElement.getAttribute("dir");return $==="auto"||!$?window.getComputedStyle(document.documentElement).direction:$}function assignOffset($,Cr){const kr={};return[$,Cr].forEach((Pr,Rr)=>{const Ir=Rr===1,Fr=Ir?"--mobile-offset":"--offset",Lr=Ir?MOBILE_VIEWPORT_OFFSET:VIEWPORT_OFFSET;function qr(fa){["top","right","bottom","left"].forEach(pa=>{kr[`${Fr}-${pa}`]=typeof fa=="number"?`${fa}px`:fa})}typeof Pr=="number"||typeof Pr=="string"?qr(Pr):typeof Pr=="object"?["top","right","bottom","left"].forEach(fa=>{Pr[fa]===void 0?kr[`${Fr}-${fa}`]=Lr:kr[`${Fr}-${fa}`]=typeof Pr[fa]=="number"?`${Pr[fa]}px`:Pr[fa]}):qr(Lr)}),kr}const Toaster=React.forwardRef(function(Cr,kr){const{id:Pr,invert:Rr,position:Ir="bottom-right",hotkey:Fr=["altKey","KeyT"],expand:Lr,closeButton:qr,className:fa,offset:pa,mobileOffset:ga,theme:xa="light",richColors:ya,duration:ba,style:Aa,visibleToasts:ka=VISIBLE_TOASTS_AMOUNT,toastOptions:Ea,dir:Sa=getDocumentDirection(),gap:Ca=GAP,icons:Ta,containerAriaLabel:Ia="Notifications"}=Cr,[Ra,ja]=React.useState([]),Oa=React.useMemo(()=>Pr?Ra.filter(Ua=>Ua.toasterId===Pr):Ra.filter(Ua=>!Ua.toasterId),[Ra,Pr]),La=React.useMemo(()=>Array.from(new Set([Ir].concat(Oa.filter(Ua=>Ua.position).map(Ua=>Ua.position)))),[Oa,Ir]),[Ha,Wa]=React.useState([]),[Ja,Ya]=React.useState(!1),[Za,Qa]=React.useState(!1),[Na,Ka]=React.useState(xa!=="system"?xa:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),Fa=React.useRef(null),Va=Fr.join("+").replace(/Key/g,"").replace(/Digit/g,""),Da=React.useRef(null),Ba=React.useRef(!1),Ga=React.useCallback(Ua=>{ja(qa=>{var $a;return($a=qa.find(tl=>tl.id===Ua.id))!=null&&$a.delete||ToastState.dismiss(Ua.id),qa.filter(({id:tl})=>tl!==Ua.id)})},[]);return React.useEffect(()=>ToastState.subscribe(Ua=>{if(Ua.dismiss){requestAnimationFrame(()=>{ja(qa=>qa.map($a=>$a.id===Ua.id?{...$a,delete:!0}:$a))});return}setTimeout(()=>{ReactDOM.flushSync(()=>{ja(qa=>{const $a=qa.findIndex(tl=>tl.id===Ua.id);return $a!==-1?[...qa.slice(0,$a),{...qa[$a],...Ua},...qa.slice($a+1)]:[Ua,...qa]})})})}),[Ra]),React.useEffect(()=>{if(xa!=="system"){Ka(xa);return}if(xa==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?Ka("dark"):Ka("light")),typeof window>"u")return;const Ua=window.matchMedia("(prefers-color-scheme: dark)");try{Ua.addEventListener("change",({matches:qa})=>{Ka(qa?"dark":"light")})}catch{Ua.addListener(({matches:$a})=>{try{Ka($a?"dark":"light")}catch(tl){console.error(tl)}})}},[xa]),React.useEffect(()=>{Ra.length<=1&&Ya(!1)},[Ra]),React.useEffect(()=>{const Ua=qa=>{var $a;if(Fr.every(ol=>qa[ol]||qa.code===ol)){var ll;Ya(!0),(ll=Fa.current)==null||ll.focus()}qa.code==="Escape"&&(document.activeElement===Fa.current||($a=Fa.current)!=null&&$a.contains(document.activeElement))&&Ya(!1)};return document.addEventListener("keydown",Ua),()=>document.removeEventListener("keydown",Ua)},[Fr]),React.useEffect(()=>{if(Fa.current)return()=>{Da.current&&(Da.current.focus({preventScroll:!0}),Da.current=null,Ba.current=!1)}},[Fa.current]),React.createElement("section",{ref:kr,"aria-label":`${Ia} ${Va}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},La.map((Ua,qa)=>{var $a;const[tl,ll]=Ua.split("-");return Oa.length?React.createElement("ol",{key:Ua,dir:Sa==="auto"?getDocumentDirection():Sa,tabIndex:-1,ref:Fa,className:fa,"data-sonner-toaster":!0,"data-sonner-theme":Na,"data-y-position":tl,"data-x-position":ll,style:{"--front-toast-height":`${(($a=Ha[0])==null?void 0:$a.height)||0}px`,"--width":`${TOAST_WIDTH}px`,"--gap":`${Ca}px`,...Aa,...assignOffset(pa,ga)},onBlur:ol=>{Ba.current&&!ol.currentTarget.contains(ol.relatedTarget)&&(Ba.current=!1,Da.current&&(Da.current.focus({preventScroll:!0}),Da.current=null))},onFocus:ol=>{ol.target instanceof HTMLElement&&ol.target.dataset.dismissible==="false"||Ba.current||(Ba.current=!0,Da.current=ol.relatedTarget)},onMouseEnter:()=>Ya(!0),onMouseMove:()=>Ya(!0),onMouseLeave:()=>{Za||Ya(!1)},onDragEnd:()=>Ya(!1),onPointerDown:ol=>{ol.target instanceof HTMLElement&&ol.target.dataset.dismissible==="false"||Qa(!0)},onPointerUp:()=>Qa(!1)},Oa.filter(ol=>!ol.position&&qa===0||ol.position===Ua).map((ol,_a)=>{var nl,il;return React.createElement(Toast,{key:ol.id,icons:Ta,index:_a,toast:ol,defaultRichColors:ya,duration:(nl=Ea==null?void 0:Ea.duration)!=null?nl:ba,className:Ea==null?void 0:Ea.className,descriptionClassName:Ea==null?void 0:Ea.descriptionClassName,invert:Rr,visibleToasts:ka,closeButton:(il=Ea==null?void 0:Ea.closeButton)!=null?il:qr,interacting:Za,position:Ua,style:Ea==null?void 0:Ea.style,unstyled:Ea==null?void 0:Ea.unstyled,classNames:Ea==null?void 0:Ea.classNames,cancelButtonStyle:Ea==null?void 0:Ea.cancelButtonStyle,actionButtonStyle:Ea==null?void 0:Ea.actionButtonStyle,closeButtonAriaLabel:Ea==null?void 0:Ea.closeButtonAriaLabel,removeToast:Ga,toasts:Oa.filter(ul=>ul.position==ol.position),heights:Ha.filter(ul=>ul.position==ol.position),setHeights:Wa,expandByDefault:Lr,gap:Ca,expanded:Ja,swipeDirections:Cr.swipeDirections})})):null}))}),Ok=$=>({ok:!0,value:$}),Err=$=>({ok:!1,error:$}),changeKey=($,Cr)=>`style:${$}:${Cr}`,textChangeKey=$=>`text:${$}`,getElementIdentityCandidates=$=>{const Cr=[$.rivetId,$.xpath,$.cssSelector].filter(kr=>!!kr).map(kr=>kr.trim()).filter(Boolean);return Cr.length>0?[...new Set(Cr)]:["unknown"]},getElementIdentityKey=$=>getElementIdentityCandidates($)[0],matchesElementIdentity=($,Cr)=>getElementIdentityCandidates($).includes(Cr),changeKeyFromChange=$=>{const Cr=getElementIdentityKey($.elementId),kr=$.batchId?`:${$.batchId}`:"";return $.type==="style"?`${changeKey(Cr,$.property)}${kr}`:`${textChangeKey(Cr)}${kr}`};class DOMError extends Error{constructor(Cr){super(Cr),this.name="DOMError"}}class ElementNotFoundError extends DOMError{constructor(Cr,kr){super(kr||`Element not found: rivetId=${Cr.rivetId}, xpath=${Cr.xpath}`),this.identifier=Cr,this.name="ElementNotFoundError"}}class StyleApplicationError extends DOMError{constructor(Cr,kr,Pr){super(Pr||`Failed to apply style: ${Cr} = ${kr}. Value may be invalid.`),this.property=Cr,this.value=kr,this.name="StyleApplicationError"}}const byteToHex=[];for(let $=0;$<256;++$)byteToHex.push(($+256).toString(16).slice(1));function unsafeStringify($,Cr=0){return(byteToHex[$[Cr+0]]+byteToHex[$[Cr+1]]+byteToHex[$[Cr+2]]+byteToHex[$[Cr+3]]+"-"+byteToHex[$[Cr+4]]+byteToHex[$[Cr+5]]+"-"+byteToHex[$[Cr+6]]+byteToHex[$[Cr+7]]+"-"+byteToHex[$[Cr+8]]+byteToHex[$[Cr+9]]+"-"+byteToHex[$[Cr+10]]+byteToHex[$[Cr+11]]+byteToHex[$[Cr+12]]+byteToHex[$[Cr+13]]+byteToHex[$[Cr+14]]+byteToHex[$[Cr+15]]).toLowerCase()}let getRandomValues;const rnds8=new Uint8Array(16);function rng(){if(!getRandomValues){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");getRandomValues=crypto.getRandomValues.bind(crypto)}return getRandomValues(rnds8)}const randomUUID=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),native={randomUUID};function _v4($,Cr,kr){var Rr;$=$||{};const Pr=$.random??((Rr=$.rng)==null?void 0:Rr.call($))??rng();if(Pr.length<16)throw new Error("Random bytes length must be >= 16");return Pr[6]=Pr[6]&15|64,Pr[8]=Pr[8]&63|128,unsafeStringify(Pr)}function v4($,Cr,kr){return native.randomUUID&&!$?native.randomUUID():_v4($)}var loglevel$1={exports:{}},loglevel=loglevel$1.exports,hasRequiredLoglevel;function requireLoglevel(){return hasRequiredLoglevel||(hasRequiredLoglevel=1,(function($){(function(Cr,kr){$.exports?$.exports=kr():Cr.log=kr()})(loglevel,function(){var Cr=function(){},kr="undefined",Pr=typeof window!==kr&&typeof window.navigator!==kr&&/Trident\/|MSIE /.test(window.navigator.userAgent),Rr=["trace","debug","info","warn","error"],Ir={},Fr=null;function Lr(Aa,ka){var Ea=Aa[ka];if(typeof Ea.bind=="function")return Ea.bind(Aa);try{return Function.prototype.bind.call(Ea,Aa)}catch{return function(){return Function.prototype.apply.apply(Ea,[Aa,arguments])}}}function qr(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function fa(Aa){return Aa==="debug"&&(Aa="log"),typeof console===kr?!1:Aa==="trace"&&Pr?qr:console[Aa]!==void 0?Lr(console,Aa):console.log!==void 0?Lr(console,"log"):Cr}function pa(){for(var Aa=this.getLevel(),ka=0;ka<Rr.length;ka++){var Ea=Rr[ka];this[Ea]=ka<Aa?Cr:this.methodFactory(Ea,Aa,this.name)}if(this.log=this.debug,typeof console===kr&&Aa<this.levels.SILENT)return"No console available for logging"}function ga(Aa){return function(){typeof console!==kr&&(pa.call(this),this[Aa].apply(this,arguments))}}function xa(Aa,ka,Ea){return fa(Aa)||ga.apply(this,arguments)}function ya(Aa,ka){var Ea=this,Sa,Ca,Ta,Ia="loglevel";typeof Aa=="string"?Ia+=":"+Aa:typeof Aa=="symbol"&&(Ia=void 0);function Ra(Wa){var Ja=(Rr[Wa]||"silent").toUpperCase();if(!(typeof window===kr||!Ia)){try{window.localStorage[Ia]=Ja;return}catch{}try{window.document.cookie=encodeURIComponent(Ia)+"="+Ja+";"}catch{}}}function ja(){var Wa;if(!(typeof window===kr||!Ia)){try{Wa=window.localStorage[Ia]}catch{}if(typeof Wa===kr)try{var Ja=window.document.cookie,Ya=encodeURIComponent(Ia),Za=Ja.indexOf(Ya+"=");Za!==-1&&(Wa=/^([^;]+)/.exec(Ja.slice(Za+Ya.length+1))[1])}catch{}return Ea.levels[Wa]===void 0&&(Wa=void 0),Wa}}function Oa(){if(!(typeof window===kr||!Ia)){try{window.localStorage.removeItem(Ia)}catch{}try{window.document.cookie=encodeURIComponent(Ia)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function La(Wa){var Ja=Wa;if(typeof Ja=="string"&&Ea.levels[Ja.toUpperCase()]!==void 0&&(Ja=Ea.levels[Ja.toUpperCase()]),typeof Ja=="number"&&Ja>=0&&Ja<=Ea.levels.SILENT)return Ja;throw new TypeError("log.setLevel() called with invalid level: "+Wa)}Ea.name=Aa,Ea.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},Ea.methodFactory=ka||xa,Ea.getLevel=function(){return Ta??Ca??Sa},Ea.setLevel=function(Wa,Ja){return Ta=La(Wa),Ja!==!1&&Ra(Ta),pa.call(Ea)},Ea.setDefaultLevel=function(Wa){Ca=La(Wa),ja()||Ea.setLevel(Wa,!1)},Ea.resetLevel=function(){Ta=null,Oa(),pa.call(Ea)},Ea.enableAll=function(Wa){Ea.setLevel(Ea.levels.TRACE,Wa)},Ea.disableAll=function(Wa){Ea.setLevel(Ea.levels.SILENT,Wa)},Ea.rebuild=function(){if(Fr!==Ea&&(Sa=La(Fr.getLevel())),pa.call(Ea),Fr===Ea)for(var Wa in Ir)Ir[Wa].rebuild()},Sa=La(Fr?Fr.getLevel():"WARN");var Ha=ja();Ha!=null&&(Ta=La(Ha)),pa.call(Ea)}Fr=new ya,Fr.getLogger=function(ka){if(typeof ka!="symbol"&&typeof ka!="string"||ka==="")throw new TypeError("You must supply a name when creating a logger.");var Ea=Ir[ka];return Ea||(Ea=Ir[ka]=new ya(ka,Fr.methodFactory)),Ea};var ba=typeof window!==kr?window.log:void 0;return Fr.noConflict=function(){return typeof window!==kr&&window.log===Fr&&(window.log=ba),Fr},Fr.getLoggers=function(){return Ir},Fr.default=Fr,Fr})})(loglevel$1)),loglevel$1.exports}var loglevelExports=requireLoglevel();const log$x=getDefaultExportFromCjs(loglevelExports),defaultLevel="INFO",LOG_LEVEL=defaultLevel.toUpperCase();log$x.setLevel(log$x.levels[LOG_LEVEL]||log$x.levels.INFO);const createLogger=$=>{const Cr=$?`[${$}] `:"";return{trace:(kr,...Pr)=>log$x.trace(`${Cr}${kr}`,...Pr),debug:(kr,...Pr)=>log$x.debug(`${Cr}${kr}`,...Pr),info:(kr,...Pr)=>log$x.info(`${Cr}${kr}`,...Pr),warn:(kr,...Pr)=>log$x.warn(`${Cr}${kr}`,...Pr),error:(kr,...Pr)=>{log$x.error(`${Cr}${kr}`,...Pr);try{const Ir=Pr.map(Lr=>Lr instanceof Error?Lr.message:String(Lr)).join(" ").slice(0,512),Fr={source:"ui",error_message:kr,service:$??"unknown",error_type:"logged_error",url:window.location.pathname,error_args_count:Pr.length,...Ir?{error_detail:Ir}:{}};va.capture("logger_error",Fr)}catch(Rr){console.error("[logger] Failed to send logger_error to PostHog:",Rr)}},api:(kr,...Pr)=>log$x.info(`${Cr}API: ${kr}`,...Pr),hook:(kr,...Pr)=>log$x.debug(`${Cr}Hook: ${kr}`,...Pr),mount:(kr,...Pr)=>log$x.debug(`${Cr}Mount: ${kr}`,...Pr)}},TAILWIND_SPACING_PX={0:0,"0.5":2,1:4,"1.5":6,2:8,"2.5":10,3:12,"3.5":14,4:16,5:20,6:24,7:28,8:32,9:36,10:40,11:44,12:48,14:56,16:64,20:80,24:96,28:112,32:128,36:144,40:160,44:176,48:192,52:208,56:224,60:240,64:256,72:288,80:320,96:384},DEFAULT_TAILWIND_SCALE=TAILWIND_SPACING_PX,DEFAULT_PX_TO_TAILWIND=new Map;for(const[$,Cr]of Object.entries(TAILWIND_SPACING_PX))DEFAULT_PX_TO_TAILWIND.set(Cr,$);const PX_TOLERANCE=1,pxToTailwindClass=($,Cr,kr=DEFAULT_TAILWIND_SCALE)=>{const Pr=$.match(/^(\d+(?:\.\d+)?)px$/);if(!Pr)return $;const Rr=parseFloat(Pr[1]),Ir=Math.round(Rr),Lr=(kr===DEFAULT_TAILWIND_SCALE?DEFAULT_PX_TO_TAILWIND:new Map(Object.entries(kr).map(([qr,fa])=>[Math.round(fa),qr]))).get(Ir);if(Lr!==void 0)return`${Cr==="width"?"w":"h"}-${Lr}`;for(const[qr,fa]of Object.entries(kr))if(Math.abs(Rr-fa)<=PX_TOLERANCE)return`${Cr==="width"?"w":"h"}-${qr}`;return $},tailwindClassToPx=($,Cr=DEFAULT_TAILWIND_SCALE)=>{const kr=$.match(/^(w|h)-(.+)$/);if(!kr)return $;const Pr=kr[2],Rr=Cr[Pr];return Rr===void 0?$:`${Rr}px`},log$w=createLogger("StyleManipulationService");class StyleManipulationService{constructor(Cr,kr){oc(this,"hmrUnsubscribe",null);this.adapter=Cr,this.tracker=kr,this.hmrUnsubscribe=this.adapter.onHMR(()=>{this.handleHMR()})}async previewStyleChange(Cr,kr,Pr){return this.adapter.applyStyle(Cr,kr,Pr)}async applyStyleChange(Cr,kr,Pr,Rr,Ir,Fr){let Lr;if(Ir!==void 0)Lr=Ir;else{const pa=await this.adapter.getComputedStylesForElement(Cr);if(!pa.ok)return Err(pa.error);Lr=pa.value[Pr]||""}const qr=await this.adapter.applyStyle(Cr,Pr,Rr);if(!qr.ok)return Err(qr.error);const fa={type:"style",id:v4(),timestamp:Date.now(),elementId:Cr,elementContext:kr,property:Pr,oldValue:Lr,newValue:Fr??Rr};return this.tracker.recordChange(fa),Ok(void 0)}recordTextChange(Cr,kr,Pr,Rr){const Ir={type:"text",id:v4(),timestamp:Date.now(),elementId:Cr,elementContext:kr,oldText:Pr,newText:Rr};this.tracker.recordChange(Ir)}async undo(){const Cr=this.tracker.undo();return Cr?await this.clearAndReapply(Cr):Ok(void 0)}async redo(){const Cr=this.tracker.getChanges();return this.tracker.redo()?await this.clearAndReapply(Cr):Ok(void 0)}getChanges(){return this.tracker.getChanges()}getStyleChanges(){return this.tracker.getStyleChanges()}getTextChanges(){return this.tracker.getTextChanges()}getChangeCount(){return this.tracker.getChangeCount()}canUndo(){return this.tracker.canUndo()}canRedo(){return this.tracker.canRedo()}flushPending(){this.tracker.flushPending()}async revertSpecificChange(Cr){const kr=changeKeyFromChange(Cr),Pr=await this.adapter.findElement(Cr.elementId);if(!Pr.ok){const Fr=Pr.error;return Err(Fr instanceof Error?Fr:new Error(String(Fr)))}const Rr=Pr.value;try{Cr.type==="style"?Cr.property==="width"||Cr.property==="height"?Rr.style[Cr.property]="":Rr.style[Cr.property]=Cr.oldValue:Rr.textContent=Cr.oldText}catch(Fr){return log$w.warn("Failed to revert specific change:",Fr),Err(Fr instanceof Error?Fr:new Error("Failed to revert change"))}return this.tracker.removeChange(kr)||log$w.warn("removeChange found no entry for key:",kr),Ok(void 0)}clear(){this.tracker.clear()}removeTrackedChangeById(Cr){return this.tracker.removeChangeById(Cr)!==null}async transaction(Cr){await this.tracker.transaction(Cr)}getChangesForElement(Cr){return this.tracker.getChanges().filter(kr=>matchesElementIdentity(kr.elementId,Cr))}hasChanges(Cr){return this.tracker.hasChanges(Cr)}onChange(Cr){return this.tracker.onChange(Cr)}async handleHMR(){log$w.info("HMR detected, reapplying changes"),await new Promise(kr=>setTimeout(kr,100));const Cr=await this.reapplyAllChanges({stylesOnly:!0});Cr.ok||log$w.warn("Failed to reapply changes after HMR:",Cr.error)}async clearAndReapply(Cr){for(const kr of Cr){const Pr=await this.adapter.findElement(kr.elementId);if(Pr.ok){const Rr=Pr.value;try{kr.type==="style"?kr.property==="width"||kr.property==="height"?Rr.style[kr.property]="":Rr.style[kr.property]=kr.oldValue:Rr.textContent=kr.oldText}catch(Ir){log$w.warn("Failed to restore baseline:",Ir)}}}return await this.reapplyAllChanges()}async reapplyAllChanges(Cr={}){const kr=this.tracker.getChanges(),Pr=Cr.stylesOnly?kr.filter(Ir=>Ir.type==="style"):kr,Rr=[];for(const Ir of Pr)if(Ir.type==="style"){const Fr=Ir.property==="width"||Ir.property==="height"?tailwindClassToPx(Ir.newValue):Ir.newValue,Lr=await this.adapter.applyStyle(Ir.elementId,Ir.property,Fr);Lr.ok||Rr.push({change:Ir,error:Lr.error})}else{const Fr=await this.adapter.findElement(Ir.elementId);if(Fr.ok){const Lr=Fr.value;Lr.textContent=Ir.newText}else Rr.push({change:Ir,error:Fr.error})}return Rr.length>0?(log$w.warn(`Failed to reapply ${Rr.length}/${Pr.length} changes`,Rr),Err(new Error(`Failed to reapply ${Rr.length} changes. First error: ${Rr[0].error.message}`))):Ok(void 0)}async clearInlineChanges(){const Cr=this.tracker.getChanges();for(const kr of Cr){const Pr=await this.adapter.findElement(kr.elementId);if(!Pr.ok){log$w.warn("Could not find element to clear change:",Pr.error);continue}const Rr=Pr.value;try{kr.type==="style"?Rr.style[kr.property]="":Rr.textContent=kr.oldText}catch(Ir){log$w.warn("Failed to clear change:",Ir)}}return Ok(void 0)}async clearInlineStyles(){return this.clearInlineChanges()}destroy(){this.hmrUnsubscribe&&(this.hmrUnsubscribe(),this.hmrUnsubscribe=null)}}const DEBOUNCE_DELAY_MS=300;class ChangeTracker{constructor(){oc(this,"history",{current:new Map,past:[],future:[]});oc(this,"pendingChanges",new Map);oc(this,"currentBatchId",null);oc(this,"debounceTimer",null);oc(this,"onChangeCallbacks",[]);oc(this,"stateBeforePending",null);oc(this,"transactionDepth",0)}recordChange(Cr){this.pendingChanges.size===0&&(this.currentBatchId=v4(),this.stateBeforePending=new Map(this.history.current)),this.currentBatchId&&(Cr.batchId=this.currentBatchId);const kr=getElementIdentityKey(Cr.elementId),Pr=Cr.type==="style"?changeKey(kr,Cr.property):textChangeKey(kr),Rr=Array.from(this.history.current.entries()).find(([Fr])=>Fr===Pr||Fr.startsWith(`${Pr}:`));if(Rr){const Fr=Rr[1];Cr.type==="style"&&Fr.type==="style"?Cr.oldValue=Fr.oldValue:Cr.type==="text"&&Fr.type==="text"&&(Cr.oldText=Fr.oldText)}const Ir=changeKeyFromChange(Cr);this.history.current.set(Ir,Cr),this.pendingChanges.set(Ir,Cr),this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.commitPending()},DEBOUNCE_DELAY_MS),this.notifyChange()}flushPending(){this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.commitPending()}removeChange(Cr){const kr=this.history.current.get(Cr)??this.pendingChanges.get(Cr)??null,Pr=this.history.current.has(Cr),Rr=this.pendingChanges.has(Cr);return!Pr&&!Rr?null:(Pr&&this.history.current.delete(Cr),Rr&&this.pendingChanges.delete(Cr),kr&&this.stateBeforePending&&(this.stateBeforePending=this.removeChangeFromSnapshotById(this.stateBeforePending,kr.id)),Rr&&this.pendingChanges.size===0&&(this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.stateBeforePending=null,this.currentBatchId=null),Pr&&(this.history.future=[]),kr&&(this.history.past=this.history.past.map(Ir=>this.removeChangeFromSnapshotById(Ir,kr.id)).filter(Ir=>Ir.size>0)),this.notifyChange(),kr)}removeChangeById(Cr){const kr=Array.from(this.history.current.entries()).find(([,Rr])=>Rr.id===Cr);if(kr)return this.removeChange(kr[0]);const Pr=Array.from(this.pendingChanges.entries()).find(([,Rr])=>Rr.id===Cr);return Pr?this.removeChange(Pr[0]):null}removeChangeFromSnapshotById(Cr,kr){return new Map(Array.from(Cr.entries()).filter(([,Pr])=>Pr.id!==kr))}commitPending(){this.pendingChanges.size===0||!this.stateBeforePending||this.transactionDepth>0||(this.history.past.push(this.stateBeforePending),this.history.future=[],this.pendingChanges.clear(),this.stateBeforePending=null,this.currentBatchId=null,this.notifyChange())}undo(){if(this.pendingChanges.size>0&&this.commitPending(),this.history.past.length===0)return null;const Cr=new Map(this.history.current);this.history.future.push(Cr),this.history.current=this.history.past.pop(),this.notifyChange();const kr=[];for(const[Pr,Rr]of Cr)this.history.current.has(Pr)||kr.push(Rr);return kr}redo(){if(this.history.future.length===0)return null;const Cr=new Map(this.history.current);this.history.past.push(Cr),this.history.current=this.history.future.pop(),this.notifyChange();const kr=[];for(const[Pr,Rr]of this.history.current)Cr.has(Pr)||kr.push(Rr);return kr}getChanges(){return Array.from(this.history.current.values())}getStyleChanges(){return Array.from(this.history.current.values()).filter(Cr=>Cr.type==="style")}getTextChanges(){return Array.from(this.history.current.values()).filter(Cr=>Cr.type==="text")}getChangeCount(){return this.getUniqueBatchCount(this.history.current.values())}getStyleBatchCount(){return this.getUniqueBatchCount(Array.from(this.history.current.values()).filter(Cr=>Cr.type==="style"))}getTextBatchCount(){return this.getUniqueBatchCount(Array.from(this.history.current.values()).filter(Cr=>Cr.type==="text"))}getUniqueBatchCount(Cr){const kr=new Set;for(const Pr of Cr)Pr.batchId?kr.add(Pr.batchId):kr.add(Pr.id);return kr.size}canUndo(){return this.history.past.length>0||this.pendingChanges.size>0}canRedo(){return this.history.future.length>0}clear(){this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.history={current:new Map,past:[],future:[]},this.pendingChanges.clear(),this.stateBeforePending=null,this.currentBatchId=null,this.notifyChange()}getStyleChange(Cr,kr){return Array.from(this.history.current.values()).filter(Rr=>Rr.type==="style"&&matchesElementIdentity(Rr.elementId,Cr)&&Rr.property===kr).sort((Rr,Ir)=>Ir.timestamp-Rr.timestamp)[0]}getTextChange(Cr){return Array.from(this.history.current.values()).filter(Pr=>Pr.type==="text"&&matchesElementIdentity(Pr.elementId,Cr)).sort((Pr,Rr)=>Rr.timestamp-Pr.timestamp)[0]}hasChanges(Cr){return Array.from(this.history.current.values()).some(kr=>matchesElementIdentity(kr.elementId,Cr))}getChangesForElement(Cr){return Array.from(this.history.current.values()).filter(kr=>matchesElementIdentity(kr.elementId,Cr))}onChange(Cr){return this.onChangeCallbacks.push(Cr),()=>{const kr=this.onChangeCallbacks.indexOf(Cr);kr!==-1&&this.onChangeCallbacks.splice(kr,1)}}notifyChange(){this.onChangeCallbacks.forEach(Cr=>Cr())}export(){return{current:Array.from(this.history.current.entries()),past:this.history.past.map(Cr=>Array.from(Cr.entries())),future:this.history.future.map(Cr=>Array.from(Cr.entries()))}}import(Cr){this.history={current:new Map(Cr.current),past:Cr.past.map(kr=>new Map(kr)),future:Cr.future.map(kr=>new Map(kr))},this.notifyChange()}async transaction(Cr){const kr=this.pendingChanges.size===0;kr&&(this.currentBatchId=v4(),this.stateBeforePending=new Map(this.history.current)),this.transactionDepth++;try{await Cr()}catch(Pr){throw kr&&this.stateBeforePending&&(this.history.current=new Map(this.stateBeforePending),this.pendingChanges.clear(),this.currentBatchId=null,this.stateBeforePending=null),Pr}finally{this.transactionDepth--,kr&&this.transactionDepth===0&&this.flushPending()}}}const DEFAULT_SELECTED_MODEL_ID="claude-opus-4-7",FLAG_DEFINITIONS={resize:{default:!1},variants:{default:!1}},DEFAULT_FEATURE_FLAGS=Object.fromEntries(Object.entries(FLAG_DEFINITIONS).map(([$,Cr])=>[$,{isEnabled:Cr.default}])),selectedElementAtom=atom(null),chatMessagesAtom=atom([]),chatDraftAtom=atom(""),chatDraftImagesAtom=atom([]),modeAtom=atom("comment"),changeModeAtom=atom(null,($,Cr,kr)=>{Cr(modeAtom,kr),kr==="view"&&(Cr(selectedElementAtom,null),Cr(elementScreenshotAtom,null))}),panelOpenAtom=atom(!0),designChangeCountAtom=atom(0),iframeRefAtom=atom(null),displayAdapterAtom=atom(null),designTokensAtom=atom(null),textEditingStateAtom=atom({isEditing:!1,element:null,originalText:""}),isResizingAtom=atom(!1),globalChangeTrackerAtom=atom(new ChangeTracker),gitStatusAtom=atom(null),globalManipulationServiceAtom=atom(null),elementScreenshotAtom=atom(null),AVAILABLE_MODELS=[{id:"claude-sonnet-4-6",name:"Sonnet 4.6",description:"Fast and capable"},{id:"claude-opus-4-7",name:"Opus 4.7",description:"Most capable"},{id:"claude-haiku-4-5",name:"Haiku 4.5",description:"Fast and affordable"}],selectedModelAtom=atom(DEFAULT_SELECTED_MODEL_ID),commentsAtom=atom(new Map),editingCommentIdAtom=atom(null),activeCarouselCommentIdAtom=atom(null),featureFlagsAtom=atom(DEFAULT_FEATURE_FLAGS),agentModeAvailableAtom=atom(!1),isMCPSessionAtom=atom(!1),mcpEditorAtom=atom(null),isPublishingAtom=atom(!1),isCommentDraftDirtyAtom=atom(!1),isEyedropperActiveAtom=atom(!1),commentShakeAtom=atom(0),panelClickVersionAtom=atom(0),log$v=createLogger("StreamingUtils"),handleSSEStream=async($,Cr)=>{var xa;const{url:kr,method:Pr="POST",headers:Rr={},body:Ir,signal:Fr}=$,{onChunk:Lr,onProgress:qr,onComplete:fa,onError:pa,onCanceled:ga}=Cr;try{const ya=await fetch(kr,{method:Pr,headers:{"Content-Type":"application/json",...Rr},body:JSON.stringify(Ir),signal:Fr});if(!ya.ok){if(ya.status===401)throw new Error("Authentication required. Please run `rivet logout` and `rivet login` to re-authenticate.");if(ya.status===429){const Sa=await ya.json().catch(()=>({})),Ca=Sa.message||Sa.error||"";throw Ca.includes("SPEND_LIMIT_EXCEEDED:")?new Error(Ca):new Error(Ca||"Rate limit exceeded. Please try again shortly.")}throw new Error(`HTTP error! status: ${ya.status}`)}const ba=(xa=ya.body)==null?void 0:xa.getReader(),Aa=new TextDecoder;if(!ba)throw new Error("No response body reader available");let ka="",Ea="";for(;;){const{done:Sa,value:Ca}=await ba.read();if(Sa)break;ka+=Aa.decode(Ca,{stream:!0});const Ta=ka.split(`
|
|
70
|
+
`),()=>{var ja;(ja=Lr.current)==null||ja.removeAttribute("data-motion-pop-id"),Ra.contains(Ia)&&Ra.removeChild(Ia)}},[Cr]),jsxRuntimeExports.jsx(PopChildMeasure,{isPresent:Cr,childRef:Lr,sizeRef:qr,pop:Ir,children:Ir===!1?$:reactExports.cloneElement($,{ref:ga})})}const PresenceChild=({children:$,initial:Cr,isPresent:kr,onExitComplete:Pr,custom:Rr,presenceAffectsLayout:Ir,mode:Fr,anchorX:Lr,anchorY:qr,root:fa})=>{const pa=useConstant(newChildrenMap),ga=reactExports.useId();let xa=!0,ya=reactExports.useMemo(()=>(xa=!1,{id:ga,initial:Cr,isPresent:kr,custom:Rr,onExitComplete:ba=>{pa.set(ba,!0);for(const Aa of pa.values())if(!Aa)return;Pr&&Pr()},register:ba=>(pa.set(ba,!1),()=>pa.delete(ba))}),[kr,pa,Pr]);return Ir&&xa&&(ya={...ya}),reactExports.useMemo(()=>{pa.forEach((ba,Aa)=>pa.set(Aa,!1))},[kr]),reactExports.useEffect(()=>{!kr&&!pa.size&&Pr&&Pr()},[kr]),$=jsxRuntimeExports.jsx(PopChild,{pop:Fr==="popLayout",isPresent:kr,anchorX:Lr,anchorY:qr,root:fa,children:$}),jsxRuntimeExports.jsx(PresenceContext.Provider,{value:ya,children:$})};function newChildrenMap(){return new Map}function usePresence$1($=!0){const Cr=reactExports.useContext(PresenceContext);if(Cr===null)return[!0,null];const{isPresent:kr,onExitComplete:Pr,register:Rr}=Cr,Ir=reactExports.useId();reactExports.useEffect(()=>{if($)return Rr(Ir)},[$]);const Fr=reactExports.useCallback(()=>$&&Pr&&Pr(Ir),[Ir,Pr,$]);return!kr&&Pr?[!1,Fr]:[!0]}const getChildKey=$=>$.key||"";function onlyElements($){const Cr=[];return reactExports.Children.forEach($,kr=>{reactExports.isValidElement(kr)&&Cr.push(kr)}),Cr}const AnimatePresence=({children:$,custom:Cr,initial:kr=!0,onExitComplete:Pr,presenceAffectsLayout:Rr=!0,mode:Ir="sync",propagate:Fr=!1,anchorX:Lr="left",anchorY:qr="top",root:fa})=>{const[pa,ga]=usePresence$1(Fr),xa=reactExports.useMemo(()=>onlyElements($),[$]),ya=Fr&&!pa?[]:xa.map(getChildKey),ba=reactExports.useRef(!0),Aa=reactExports.useRef(xa),ka=useConstant(()=>new Map),Ea=reactExports.useRef(new Set),[Sa,Ca]=reactExports.useState(xa),[Ta,Ia]=reactExports.useState(xa);useIsomorphicLayoutEffect$1(()=>{ba.current=!1,Aa.current=xa;for(let Oa=0;Oa<Ta.length;Oa++){const La=getChildKey(Ta[Oa]);ya.includes(La)?(ka.delete(La),Ea.current.delete(La)):ka.get(La)!==!0&&ka.set(La,!1)}},[Ta,ya.length,ya.join("-")]);const Ra=[];if(xa!==Sa){let Oa=[...xa];for(let La=0;La<Ta.length;La++){const Ha=Ta[La],Wa=getChildKey(Ha);ya.includes(Wa)||(Oa.splice(La,0,Ha),Ra.push(Ha))}return Ir==="wait"&&Ra.length&&(Oa=Ra),Ia(onlyElements(Oa)),Ca(xa),null}const{forceRender:ja}=reactExports.useContext(LayoutGroupContext);return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:Ta.map(Oa=>{const La=getChildKey(Oa),Ha=Fr&&!pa?!1:xa===Ta||ya.includes(La),Wa=()=>{if(Ea.current.has(La))return;if(ka.has(La))Ea.current.add(La),ka.set(La,!0);else return;let Ja=!0;ka.forEach(Ya=>{Ya||(Ja=!1)}),Ja&&(ja==null||ja(),Ia(Aa.current),Fr&&(ga==null||ga()),Pr&&Pr())};return jsxRuntimeExports.jsx(PresenceChild,{isPresent:Ha,initial:!ba.current||kr?void 0:!1,custom:Cr,presenceAffectsLayout:Rr,mode:Ir,root:fa,onExitComplete:Ha?void 0:Wa,anchorX:Lr,anchorY:qr,children:Oa},La)})})},LazyContext=reactExports.createContext({strict:!1}),featureProps={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]};let isInitialized=!1;function initFeatureDefinitions(){if(isInitialized)return;const $={};for(const Cr in featureProps)$[Cr]={isEnabled:kr=>featureProps[Cr].some(Pr=>!!kr[Pr])};setFeatureDefinitions($),isInitialized=!0}function getInitializedFeatureDefinitions(){return initFeatureDefinitions(),getFeatureDefinitions()}function loadFeatures($){const Cr=getInitializedFeatureDefinitions();for(const kr in $)Cr[kr]={...Cr[kr],...$[kr]};setFeatureDefinitions(Cr)}const validMotionProps=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function isValidMotionProp($){return $.startsWith("while")||$.startsWith("drag")&&$!=="draggable"||$.startsWith("layout")||$.startsWith("onTap")||$.startsWith("onPan")||$.startsWith("onLayout")||validMotionProps.has($)}let shouldForward=$=>!isValidMotionProp($);function loadExternalIsValidProp($){typeof $=="function"&&(shouldForward=Cr=>Cr.startsWith("on")?!isValidMotionProp(Cr):$(Cr))}try{loadExternalIsValidProp(require("@emotion/is-prop-valid").default)}catch{}function filterProps($,Cr,kr){const Pr={};for(const Rr in $)Rr==="values"&&typeof $.values=="object"||isMotionValue($[Rr])||(shouldForward(Rr)||kr===!0&&isValidMotionProp(Rr)||!Cr&&!isValidMotionProp(Rr)||$.draggable&&Rr.startsWith("onDrag"))&&(Pr[Rr]=$[Rr]);return Pr}const MotionContext=reactExports.createContext({});function getCurrentTreeVariants($,Cr){if(isControllingVariants($)){const{initial:kr,animate:Pr}=$;return{initial:kr===!1||isVariantLabel(kr)?kr:void 0,animate:isVariantLabel(Pr)?Pr:void 0}}return $.inherit!==!1?Cr:{}}function useCreateMotionContext($){const{initial:Cr,animate:kr}=getCurrentTreeVariants($,reactExports.useContext(MotionContext));return reactExports.useMemo(()=>({initial:Cr,animate:kr}),[variantLabelsAsDependency(Cr),variantLabelsAsDependency(kr)])}function variantLabelsAsDependency($){return Array.isArray($)?$.join(" "):$}const createHtmlRenderState=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function copyRawValuesOnly($,Cr,kr){for(const Pr in Cr)!isMotionValue(Cr[Pr])&&!isForcedMotionValue(Pr,kr)&&($[Pr]=Cr[Pr])}function useInitialMotionValues({transformTemplate:$},Cr){return reactExports.useMemo(()=>{const kr=createHtmlRenderState();return buildHTMLStyles(kr,Cr,$),Object.assign({},kr.vars,kr.style)},[Cr])}function useStyle($,Cr){const kr=$.style||{},Pr={};return copyRawValuesOnly(Pr,kr,$),Object.assign(Pr,useInitialMotionValues($,Cr)),Pr}function useHTMLProps($,Cr){const kr={},Pr=useStyle($,Cr);return $.drag&&$.dragListener!==!1&&(kr.draggable=!1,Pr.userSelect=Pr.WebkitUserSelect=Pr.WebkitTouchCallout="none",Pr.touchAction=$.drag===!0?"none":`pan-${$.drag==="x"?"y":"x"}`),$.tabIndex===void 0&&($.onTap||$.onTapStart||$.whileTap)&&(kr.tabIndex=0),kr.style=Pr,kr}const createSvgRenderState=()=>({...createHtmlRenderState(),attrs:{}});function useSVGProps($,Cr,kr,Pr){const Rr=reactExports.useMemo(()=>{const Ir=createSvgRenderState();return buildSVGAttrs(Ir,Cr,isSVGTag(Pr),$.transformTemplate,$.style),{...Ir.attrs,style:{...Ir.style}}},[Cr]);if($.style){const Ir={};copyRawValuesOnly(Ir,$.style,$),Rr.style={...Ir,...Rr.style}}return Rr}const lowercaseSVGElements=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function isSVGComponent($){return typeof $!="string"||$.includes("-")?!1:!!(lowercaseSVGElements.indexOf($)>-1||/[A-Z]/u.test($))}function useRender($,Cr,kr,{latestValues:Pr},Rr,Ir=!1,Fr){const qr=(Fr??isSVGComponent($)?useSVGProps:useHTMLProps)(Cr,Pr,Rr,$),fa=filterProps(Cr,typeof $=="string",Ir),pa=$!==reactExports.Fragment?{...fa,...qr,ref:kr}:{},{children:ga}=Cr,xa=reactExports.useMemo(()=>isMotionValue(ga)?ga.get():ga,[ga]);return reactExports.createElement($,{...pa,children:xa})}function makeState({scrapeMotionValuesFromProps:$,createRenderState:Cr},kr,Pr,Rr){return{latestValues:makeLatestValues(kr,Pr,Rr,$),renderState:Cr()}}function makeLatestValues($,Cr,kr,Pr){const Rr={},Ir=Pr($,{});for(const xa in Ir)Rr[xa]=resolveMotionValue(Ir[xa]);let{initial:Fr,animate:Lr}=$;const qr=isControllingVariants($),fa=isVariantNode($);Cr&&fa&&!qr&&$.inherit!==!1&&(Fr===void 0&&(Fr=Cr.initial),Lr===void 0&&(Lr=Cr.animate));let pa=kr?kr.initial===!1:!1;pa=pa||Fr===!1;const ga=pa?Lr:Fr;if(ga&&typeof ga!="boolean"&&!isAnimationControls(ga)){const xa=Array.isArray(ga)?ga:[ga];for(let ya=0;ya<xa.length;ya++){const ba=resolveVariantFromProps($,xa[ya]);if(ba){const{transitionEnd:Aa,transition:ka,...Ea}=ba;for(const Sa in Ea){let Ca=Ea[Sa];if(Array.isArray(Ca)){const Ta=pa?Ca.length-1:0;Ca=Ca[Ta]}Ca!==null&&(Rr[Sa]=Ca)}for(const Sa in Aa)Rr[Sa]=Aa[Sa]}}}return Rr}const makeUseVisualState=$=>(Cr,kr)=>{const Pr=reactExports.useContext(MotionContext),Rr=reactExports.useContext(PresenceContext),Ir=()=>makeState($,Cr,Pr,Rr);return kr?Ir():useConstant(Ir)},useHTMLVisualState=makeUseVisualState({scrapeMotionValuesFromProps:scrapeMotionValuesFromProps$1,createRenderState:createHtmlRenderState}),useSVGVisualState=makeUseVisualState({scrapeMotionValuesFromProps,createRenderState:createSvgRenderState}),motionComponentSymbol=Symbol.for("motionComponentSymbol");function useMotionRef($,Cr,kr){const Pr=reactExports.useRef(kr);reactExports.useInsertionEffect(()=>{Pr.current=kr});const Rr=reactExports.useRef(null);return reactExports.useCallback(Ir=>{var Lr;Ir&&((Lr=$.onMount)==null||Lr.call($,Ir));const Fr=Pr.current;if(typeof Fr=="function")if(Ir){const qr=Fr(Ir);typeof qr=="function"&&(Rr.current=qr)}else Rr.current?(Rr.current(),Rr.current=null):Fr(Ir);else Fr&&(Fr.current=Ir);Cr&&(Ir?Cr.mount(Ir):Cr.unmount())},[Cr])}const SwitchLayoutGroupContext=reactExports.createContext({});function isRefObject($){return $&&typeof $=="object"&&Object.prototype.hasOwnProperty.call($,"current")}function useVisualElement($,Cr,kr,Pr,Rr,Ir){var Ca,Ta;const{visualElement:Fr}=reactExports.useContext(MotionContext),Lr=reactExports.useContext(LazyContext),qr=reactExports.useContext(PresenceContext),fa=reactExports.useContext(MotionConfigContext),pa=fa.reducedMotion,ga=fa.skipAnimations,xa=reactExports.useRef(null),ya=reactExports.useRef(!1);Pr=Pr||Lr.renderer,!xa.current&&Pr&&(xa.current=Pr($,{visualState:Cr,parent:Fr,props:kr,presenceContext:qr,blockInitialAnimation:qr?qr.initial===!1:!1,reducedMotionConfig:pa,skipAnimations:ga,isSVG:Ir}),ya.current&&xa.current&&(xa.current.manuallyAnimateOnMount=!0));const ba=xa.current,Aa=reactExports.useContext(SwitchLayoutGroupContext);ba&&!ba.projection&&Rr&&(ba.type==="html"||ba.type==="svg")&&createProjectionNode(xa.current,kr,Rr,Aa);const ka=reactExports.useRef(!1);reactExports.useInsertionEffect(()=>{ba&&ka.current&&ba.update(kr,qr)});const Ea=kr[optimizedAppearDataAttribute],Sa=reactExports.useRef(!!Ea&&typeof window<"u"&&!((Ca=window.MotionHandoffIsComplete)!=null&&Ca.call(window,Ea))&&((Ta=window.MotionHasOptimisedAnimation)==null?void 0:Ta.call(window,Ea)));return useIsomorphicLayoutEffect$1(()=>{ya.current=!0,ba&&(ka.current=!0,window.MotionIsMounted=!0,ba.updateFeatures(),ba.scheduleRenderMicrotask(),Sa.current&&ba.animationState&&ba.animationState.animateChanges())}),reactExports.useEffect(()=>{ba&&(!Sa.current&&ba.animationState&&ba.animationState.animateChanges(),Sa.current&&(queueMicrotask(()=>{var Ia;(Ia=window.MotionHandoffMarkAsComplete)==null||Ia.call(window,Ea)}),Sa.current=!1),ba.enteringChildren=void 0)}),ba}function createProjectionNode($,Cr,kr,Pr){const{layoutId:Rr,layout:Ir,drag:Fr,dragConstraints:Lr,layoutScroll:qr,layoutRoot:fa,layoutAnchor:pa,layoutCrossfade:ga}=Cr;$.projection=new kr($.latestValues,Cr["data-framer-portal-id"]?void 0:getClosestProjectingNode($.parent)),$.projection.setOptions({layoutId:Rr,layout:Ir,alwaysMeasureLayout:!!Fr||Lr&&isRefObject(Lr),visualElement:$,animationType:typeof Ir=="string"?Ir:"both",initialPromotionConfig:Pr,crossfade:ga,layoutScroll:qr,layoutRoot:fa,layoutAnchor:pa})}function getClosestProjectingNode($){if($)return $.options.allowProjection!==!1?$.projection:getClosestProjectingNode($.parent)}function createMotionComponent($,{forwardMotionProps:Cr=!1,type:kr}={},Pr,Rr){Pr&&loadFeatures(Pr);const Ir=kr?kr==="svg":isSVGComponent($),Fr=Ir?useSVGVisualState:useHTMLVisualState;function Lr(fa,pa){let ga;const xa={...reactExports.useContext(MotionConfigContext),...fa,layoutId:useLayoutId(fa)},{isStatic:ya}=xa,ba=useCreateMotionContext(fa),Aa=Fr(fa,ya);if(!ya&&typeof window<"u"){useStrictMode();const ka=getProjectionFunctionality(xa);ga=ka.MeasureLayout,ba.visualElement=useVisualElement($,Aa,xa,Rr,ka.ProjectionNode,Ir)}return jsxRuntimeExports.jsxs(MotionContext.Provider,{value:ba,children:[ga&&ba.visualElement?jsxRuntimeExports.jsx(ga,{visualElement:ba.visualElement,...xa}):null,useRender($,fa,useMotionRef(Aa,ba.visualElement,pa),Aa,ya,Cr,Ir)]})}Lr.displayName=`motion.${typeof $=="string"?$:`create(${$.displayName??$.name??""})`}`;const qr=reactExports.forwardRef(Lr);return qr[motionComponentSymbol]=$,qr}function useLayoutId({layoutId:$}){const Cr=reactExports.useContext(LayoutGroupContext).id;return Cr&&$!==void 0?Cr+"-"+$:$}function useStrictMode($,Cr){reactExports.useContext(LazyContext).strict}function getProjectionFunctionality($){const Cr=getInitializedFeatureDefinitions(),{drag:kr,layout:Pr}=Cr;if(!kr&&!Pr)return{};const Rr={...kr,...Pr};return{MeasureLayout:kr!=null&&kr.isEnabled($)||Pr!=null&&Pr.isEnabled($)?Rr.MeasureLayout:void 0,ProjectionNode:Rr.ProjectionNode}}function createMotionProxy($,Cr){if(typeof Proxy>"u")return createMotionComponent;const kr=new Map,Pr=(Ir,Fr)=>createMotionComponent(Ir,Fr,$,Cr),Rr=(Ir,Fr)=>Pr(Ir,Fr);return new Proxy(Rr,{get:(Ir,Fr)=>Fr==="create"?Pr:(kr.has(Fr)||kr.set(Fr,createMotionComponent(Fr,void 0,$,Cr)),kr.get(Fr))})}const createDomVisualElement=($,Cr)=>Cr.isSVG??isSVGComponent($)?new SVGVisualElement(Cr):new HTMLVisualElement(Cr,{allowProjection:$!==reactExports.Fragment});class AnimationFeature extends Feature{constructor(Cr){super(Cr),Cr.animationState||(Cr.animationState=createAnimationState(Cr))}updateAnimationControlsSubscription(){const{animate:Cr}=this.node.getProps();isAnimationControls(Cr)&&(this.unmountControls=Cr.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:Cr}=this.node.getProps(),{animate:kr}=this.node.prevProps||{};Cr!==kr&&this.updateAnimationControlsSubscription()}unmount(){var Cr;this.node.animationState.reset(),(Cr=this.unmountControls)==null||Cr.call(this)}}let id=0;class ExitAnimationFeature extends Feature{constructor(){super(...arguments),this.id=id++,this.isExitComplete=!1}update(){var Ir;if(!this.node.presenceContext)return;const{isPresent:Cr,onExitComplete:kr}=this.node.presenceContext,{isPresent:Pr}=this.node.prevPresenceContext||{};if(!this.node.animationState||Cr===Pr)return;if(Cr&&Pr===!1){if(this.isExitComplete){const{initial:Fr,custom:Lr}=this.node.getProps();if(typeof Fr=="string"){const qr=resolveVariant(this.node,Fr,Lr);if(qr){const{transition:fa,transitionEnd:pa,...ga}=qr;for(const xa in ga)(Ir=this.node.getValue(xa))==null||Ir.jump(ga[xa])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}const Rr=this.node.animationState.setActive("exit",!Cr);kr&&!Cr&&Rr.then(()=>{this.isExitComplete=!0,kr(this.id)})}mount(){const{register:Cr,onExitComplete:kr}=this.node.presenceContext||{};kr&&kr(this.id),Cr&&(this.unmount=Cr(this.id))}unmount(){}}const animations={animation:{Feature:AnimationFeature},exit:{Feature:ExitAnimationFeature}};function extractEventInfo($){return{point:{x:$.pageX,y:$.pageY}}}const addPointerInfo=$=>Cr=>isPrimaryPointer(Cr)&&$(Cr,extractEventInfo(Cr));function addPointerEvent($,Cr,kr,Pr){return addDomEvent($,Cr,addPointerInfo(kr),Pr)}const getContextWindow=({current:$})=>$?$.ownerDocument.defaultView:null,distance$1=($,Cr)=>Math.abs($-Cr);function distance2D($,Cr){const kr=distance$1($.x,Cr.x),Pr=distance$1($.y,Cr.y);return Math.sqrt(kr**2+Pr**2)}const overflowStyles=new Set(["auto","scroll"]);class PanSession{constructor(Cr,kr,{transformPagePoint:Pr,contextWindow:Rr=window,dragSnapToOrigin:Ir=!1,distanceThreshold:Fr=3,element:Lr}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=ya=>{this.handleScroll(ya.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=transformPoint(this.lastRawMoveEventInfo,this.transformPagePoint));const ya=getPanInfo(this.lastMoveEventInfo,this.history),ba=this.startEvent!==null,Aa=distance2D(ya.offset,{x:0,y:0})>=this.distanceThreshold;if(!ba&&!Aa)return;const{point:ka}=ya,{timestamp:Ea}=frameData;this.history.push({...ka,timestamp:Ea});const{onStart:Sa,onMove:Ca}=this.handlers;ba||(Sa&&Sa(this.lastMoveEvent,ya),this.startEvent=this.lastMoveEvent),Ca&&Ca(this.lastMoveEvent,ya)},this.handlePointerMove=(ya,ba)=>{this.lastMoveEvent=ya,this.lastRawMoveEventInfo=ba,this.lastMoveEventInfo=transformPoint(ba,this.transformPagePoint),frame.update(this.updatePoint,!0)},this.handlePointerUp=(ya,ba)=>{this.end();const{onEnd:Aa,onSessionEnd:ka,resumeAnimation:Ea}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&Ea&&Ea(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const Sa=getPanInfo(ya.type==="pointercancel"?this.lastMoveEventInfo:transformPoint(ba,this.transformPagePoint),this.history);this.startEvent&&Aa&&Aa(ya,Sa),ka&&ka(ya,Sa)},!isPrimaryPointer(Cr))return;this.dragSnapToOrigin=Ir,this.handlers=kr,this.transformPagePoint=Pr,this.distanceThreshold=Fr,this.contextWindow=Rr||window;const qr=extractEventInfo(Cr),fa=transformPoint(qr,this.transformPagePoint),{point:pa}=fa,{timestamp:ga}=frameData;this.history=[{...pa,timestamp:ga}];const{onSessionStart:xa}=kr;xa&&xa(Cr,getPanInfo(fa,this.history)),this.removeListeners=pipe(addPointerEvent(this.contextWindow,"pointermove",this.handlePointerMove),addPointerEvent(this.contextWindow,"pointerup",this.handlePointerUp),addPointerEvent(this.contextWindow,"pointercancel",this.handlePointerUp)),Lr&&this.startScrollTracking(Lr)}startScrollTracking(Cr){let kr=Cr.parentElement;for(;kr;){const Pr=getComputedStyle(kr);(overflowStyles.has(Pr.overflowX)||overflowStyles.has(Pr.overflowY))&&this.scrollPositions.set(kr,{x:kr.scrollLeft,y:kr.scrollTop}),kr=kr.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(Cr){const kr=this.scrollPositions.get(Cr);if(!kr)return;const Pr=Cr===window,Rr=Pr?{x:window.scrollX,y:window.scrollY}:{x:Cr.scrollLeft,y:Cr.scrollTop},Ir={x:Rr.x-kr.x,y:Rr.y-kr.y};Ir.x===0&&Ir.y===0||(Pr?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=Ir.x,this.lastMoveEventInfo.point.y+=Ir.y):this.history.length>0&&(this.history[0].x-=Ir.x,this.history[0].y-=Ir.y),this.scrollPositions.set(Cr,Rr),frame.update(this.updatePoint,!0))}updateHandlers(Cr){this.handlers=Cr}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),cancelFrame(this.updatePoint)}}function transformPoint($,Cr){return Cr?{point:Cr($.point)}:$}function subtractPoint($,Cr){return{x:$.x-Cr.x,y:$.y-Cr.y}}function getPanInfo({point:$},Cr){return{point:$,delta:subtractPoint($,lastDevicePoint(Cr)),offset:subtractPoint($,startDevicePoint(Cr)),velocity:getVelocity(Cr,.1)}}function startDevicePoint($){return $[0]}function lastDevicePoint($){return $[$.length-1]}function getVelocity($,Cr){if($.length<2)return{x:0,y:0};let kr=$.length-1,Pr=null;const Rr=lastDevicePoint($);for(;kr>=0&&(Pr=$[kr],!(Rr.timestamp-Pr.timestamp>secondsToMilliseconds(Cr)));)kr--;if(!Pr)return{x:0,y:0};Pr===$[0]&&$.length>2&&Rr.timestamp-Pr.timestamp>secondsToMilliseconds(Cr)*2&&(Pr=$[1]);const Ir=millisecondsToSeconds(Rr.timestamp-Pr.timestamp);if(Ir===0)return{x:0,y:0};const Fr={x:(Rr.x-Pr.x)/Ir,y:(Rr.y-Pr.y)/Ir};return Fr.x===1/0&&(Fr.x=0),Fr.y===1/0&&(Fr.y=0),Fr}function applyConstraints($,{min:Cr,max:kr},Pr){return Cr!==void 0&&$<Cr?$=Pr?mixNumber$1(Cr,$,Pr.min):Math.max($,Cr):kr!==void 0&&$>kr&&($=Pr?mixNumber$1(kr,$,Pr.max):Math.min($,kr)),$}function calcRelativeAxisConstraints($,Cr,kr){return{min:Cr!==void 0?$.min+Cr:void 0,max:kr!==void 0?$.max+kr-($.max-$.min):void 0}}function calcRelativeConstraints($,{top:Cr,left:kr,bottom:Pr,right:Rr}){return{x:calcRelativeAxisConstraints($.x,kr,Rr),y:calcRelativeAxisConstraints($.y,Cr,Pr)}}function calcViewportAxisConstraints($,Cr){let kr=Cr.min-$.min,Pr=Cr.max-$.max;return Cr.max-Cr.min<$.max-$.min&&([kr,Pr]=[Pr,kr]),{min:kr,max:Pr}}function calcViewportConstraints($,Cr){return{x:calcViewportAxisConstraints($.x,Cr.x),y:calcViewportAxisConstraints($.y,Cr.y)}}function calcOrigin($,Cr){let kr=.5;const Pr=calcLength($),Rr=calcLength(Cr);return Rr>Pr?kr=progress(Cr.min,Cr.max-Pr,$.min):Pr>Rr&&(kr=progress($.min,$.max-Rr,Cr.min)),clamp$2(0,1,kr)}function rebaseAxisConstraints($,Cr){const kr={};return Cr.min!==void 0&&(kr.min=Cr.min-$.min),Cr.max!==void 0&&(kr.max=Cr.max-$.min),kr}const defaultElastic=.35;function resolveDragElastic($=defaultElastic){return $===!1?$=0:$===!0&&($=defaultElastic),{x:resolveAxisElastic($,"left","right"),y:resolveAxisElastic($,"top","bottom")}}function resolveAxisElastic($,Cr,kr){return{min:resolvePointElastic($,Cr),max:resolvePointElastic($,kr)}}function resolvePointElastic($,Cr){return typeof $=="number"?$:$[Cr]||0}const elementDragControls=new WeakMap;class VisualElementDragControls{constructor(Cr){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=createBox(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=Cr}start(Cr,{snapToCursor:kr=!1,distanceThreshold:Pr}={}){const{presenceContext:Rr}=this.visualElement;if(Rr&&Rr.isPresent===!1)return;const Ir=ga=>{kr&&this.snapToCursor(extractEventInfo(ga).point),this.stopAnimation()},Fr=(ga,xa)=>{const{drag:ya,dragPropagation:ba,onDragStart:Aa}=this.getProps();if(ya&&!ba&&(this.openDragLock&&this.openDragLock(),this.openDragLock=setDragLock(ya),!this.openDragLock))return;this.latestPointerEvent=ga,this.latestPanInfo=xa,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),eachAxis(Ea=>{let Sa=this.getAxisMotionValue(Ea).get()||0;if(percent.test(Sa)){const{projection:Ca}=this.visualElement;if(Ca&&Ca.layout){const Ta=Ca.layout.layoutBox[Ea];Ta&&(Sa=calcLength(Ta)*(parseFloat(Sa)/100))}}this.originPoint[Ea]=Sa}),Aa&&frame.update(()=>Aa(ga,xa),!1,!0),addValueToWillChange(this.visualElement,"transform");const{animationState:ka}=this.visualElement;ka&&ka.setActive("whileDrag",!0)},Lr=(ga,xa)=>{this.latestPointerEvent=ga,this.latestPanInfo=xa;const{dragPropagation:ya,dragDirectionLock:ba,onDirectionLock:Aa,onDrag:ka}=this.getProps();if(!ya&&!this.openDragLock)return;const{offset:Ea}=xa;if(ba&&this.currentDirection===null){this.currentDirection=getCurrentDirection(Ea),this.currentDirection!==null&&Aa&&Aa(this.currentDirection);return}this.updateAxis("x",xa.point,Ea),this.updateAxis("y",xa.point,Ea),this.visualElement.render(),ka&&frame.update(()=>ka(ga,xa),!1,!0)},qr=(ga,xa)=>{this.latestPointerEvent=ga,this.latestPanInfo=xa,this.stop(ga,xa),this.latestPointerEvent=null,this.latestPanInfo=null},fa=()=>{const{dragSnapToOrigin:ga}=this.getProps();(ga||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:pa}=this.getProps();this.panSession=new PanSession(Cr,{onSessionStart:Ir,onStart:Fr,onMove:Lr,onSessionEnd:qr,resumeAnimation:fa},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:pa,distanceThreshold:Pr,contextWindow:getContextWindow(this.visualElement),element:this.visualElement.current})}stop(Cr,kr){const Pr=Cr||this.latestPointerEvent,Rr=kr||this.latestPanInfo,Ir=this.isDragging;if(this.cancel(),!Ir||!Rr||!Pr)return;const{velocity:Fr}=Rr;this.startAnimation(Fr);const{onDragEnd:Lr}=this.getProps();Lr&&frame.postRender(()=>Lr(Pr,Rr))}cancel(){this.isDragging=!1;const{projection:Cr,animationState:kr}=this.visualElement;Cr&&(Cr.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:Pr}=this.getProps();!Pr&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),kr&&kr.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(Cr,kr,Pr){const{drag:Rr}=this.getProps();if(!Pr||!shouldDrag(Cr,Rr,this.currentDirection))return;const Ir=this.getAxisMotionValue(Cr);let Fr=this.originPoint[Cr]+Pr[Cr];this.constraints&&this.constraints[Cr]&&(Fr=applyConstraints(Fr,this.constraints[Cr],this.elastic[Cr])),Ir.set(Fr)}resolveConstraints(){var Ir;const{dragConstraints:Cr,dragElastic:kr}=this.getProps(),Pr=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(Ir=this.visualElement.projection)==null?void 0:Ir.layout,Rr=this.constraints;Cr&&isRefObject(Cr)?this.constraints||(this.constraints=this.resolveRefConstraints()):Cr&&Pr?this.constraints=calcRelativeConstraints(Pr.layoutBox,Cr):this.constraints=!1,this.elastic=resolveDragElastic(kr),Rr!==this.constraints&&!isRefObject(Cr)&&Pr&&this.constraints&&!this.hasMutatedConstraints&&eachAxis(Fr=>{this.constraints!==!1&&this.getAxisMotionValue(Fr)&&(this.constraints[Fr]=rebaseAxisConstraints(Pr.layoutBox[Fr],this.constraints[Fr]))})}resolveRefConstraints(){const{dragConstraints:Cr,onMeasureDragConstraints:kr}=this.getProps();if(!Cr||!isRefObject(Cr))return!1;const Pr=Cr.current,{projection:Rr}=this.visualElement;if(!Rr||!Rr.layout)return!1;const Ir=measurePageBox(Pr,Rr.root,this.visualElement.getTransformPagePoint());let Fr=calcViewportConstraints(Rr.layout.layoutBox,Ir);if(kr){const Lr=kr(convertBoxToBoundingBox(Fr));this.hasMutatedConstraints=!!Lr,Lr&&(Fr=convertBoundingBoxToBox(Lr))}return Fr}startAnimation(Cr){const{drag:kr,dragMomentum:Pr,dragElastic:Rr,dragTransition:Ir,dragSnapToOrigin:Fr,onDragTransitionEnd:Lr}=this.getProps(),qr=this.constraints||{},fa=eachAxis(pa=>{if(!shouldDrag(pa,kr,this.currentDirection))return;let ga=qr&&qr[pa]||{};(Fr===!0||Fr===pa)&&(ga={min:0,max:0});const xa=Rr?200:1e6,ya=Rr?40:1e7,ba={type:"inertia",velocity:Pr?Cr[pa]:0,bounceStiffness:xa,bounceDamping:ya,timeConstant:750,restDelta:1,restSpeed:10,...Ir,...ga};return this.startAxisValueAnimation(pa,ba)});return Promise.all(fa).then(Lr)}startAxisValueAnimation(Cr,kr){const Pr=this.getAxisMotionValue(Cr);return addValueToWillChange(this.visualElement,Cr),Pr.start(animateMotionValue(Cr,Pr,0,kr,this.visualElement,!1))}stopAnimation(){eachAxis(Cr=>this.getAxisMotionValue(Cr).stop())}getAxisMotionValue(Cr){const kr=`_drag${Cr.toUpperCase()}`,Pr=this.visualElement.getProps(),Rr=Pr[kr];return Rr||this.visualElement.getValue(Cr,(Pr.initial?Pr.initial[Cr]:void 0)||0)}snapToCursor(Cr){eachAxis(kr=>{const{drag:Pr}=this.getProps();if(!shouldDrag(kr,Pr,this.currentDirection))return;const{projection:Rr}=this.visualElement,Ir=this.getAxisMotionValue(kr);if(Rr&&Rr.layout){const{min:Fr,max:Lr}=Rr.layout.layoutBox[kr],qr=Ir.get()||0;Ir.set(Cr[kr]-mixNumber$1(Fr,Lr,.5)+qr)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:Cr,dragConstraints:kr}=this.getProps(),{projection:Pr}=this.visualElement;if(!isRefObject(kr)||!Pr||!this.constraints)return;this.stopAnimation();const Rr={x:0,y:0};eachAxis(Fr=>{const Lr=this.getAxisMotionValue(Fr);if(Lr&&this.constraints!==!1){const qr=Lr.get();Rr[Fr]=calcOrigin({min:qr,max:qr},this.constraints[Fr])}});const{transformTemplate:Ir}=this.visualElement.getProps();this.visualElement.current.style.transform=Ir?Ir({},""):"none",Pr.root&&Pr.root.updateScroll(),Pr.updateLayout(),this.constraints=!1,this.resolveConstraints(),eachAxis(Fr=>{if(!shouldDrag(Fr,Cr,null))return;const Lr=this.getAxisMotionValue(Fr),{min:qr,max:fa}=this.constraints[Fr];Lr.set(mixNumber$1(qr,fa,Rr[Fr]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;elementDragControls.set(this.visualElement,this);const Cr=this.visualElement.current,kr=addPointerEvent(Cr,"pointerdown",fa=>{const{drag:pa,dragListener:ga=!0}=this.getProps(),xa=fa.target,ya=xa!==Cr&&isElementTextInput(xa);pa&&ga&&!ya&&this.start(fa)});let Pr;const Rr=()=>{const{dragConstraints:fa}=this.getProps();isRefObject(fa)&&fa.current&&(this.constraints=this.resolveRefConstraints(),Pr||(Pr=startResizeObservers(Cr,fa.current,()=>this.scalePositionWithinConstraints())))},{projection:Ir}=this.visualElement,Fr=Ir.addEventListener("measure",Rr);Ir&&!Ir.layout&&(Ir.root&&Ir.root.updateScroll(),Ir.updateLayout()),frame.read(Rr);const Lr=addDomEvent(window,"resize",()=>this.scalePositionWithinConstraints()),qr=Ir.addEventListener("didUpdate",(({delta:fa,hasLayoutChanged:pa})=>{this.isDragging&&pa&&(eachAxis(ga=>{const xa=this.getAxisMotionValue(ga);xa&&(this.originPoint[ga]+=fa[ga].translate,xa.set(xa.get()+fa[ga].translate))}),this.visualElement.render())}));return()=>{Lr(),kr(),Fr(),qr&&qr(),Pr&&Pr()}}getProps(){const Cr=this.visualElement.getProps(),{drag:kr=!1,dragDirectionLock:Pr=!1,dragPropagation:Rr=!1,dragConstraints:Ir=!1,dragElastic:Fr=defaultElastic,dragMomentum:Lr=!0}=Cr;return{...Cr,drag:kr,dragDirectionLock:Pr,dragPropagation:Rr,dragConstraints:Ir,dragElastic:Fr,dragMomentum:Lr}}}function skipFirstCall($){let Cr=!0;return()=>{if(Cr){Cr=!1;return}$()}}function startResizeObservers($,Cr,kr){const Pr=resize($,skipFirstCall(kr)),Rr=resize(Cr,skipFirstCall(kr));return()=>{Pr(),Rr()}}function shouldDrag($,Cr,kr){return(Cr===!0||Cr===$)&&(kr===null||kr===$)}function getCurrentDirection($,Cr=10){let kr=null;return Math.abs($.y)>Cr?kr="y":Math.abs($.x)>Cr&&(kr="x"),kr}class DragGesture extends Feature{constructor(Cr){super(Cr),this.removeGroupControls=noop$1,this.removeListeners=noop$1,this.controls=new VisualElementDragControls(Cr)}mount(){const{dragControls:Cr}=this.node.getProps();Cr&&(this.removeGroupControls=Cr.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||noop$1}update(){const{dragControls:Cr}=this.node.getProps(),{dragControls:kr}=this.node.prevProps||{};Cr!==kr&&(this.removeGroupControls(),Cr&&(this.removeGroupControls=Cr.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const asyncHandler=$=>(Cr,kr)=>{$&&frame.update(()=>$(Cr,kr),!1,!0)};class PanGesture extends Feature{constructor(){super(...arguments),this.removePointerDownListener=noop$1}onPointerDown(Cr){this.session=new PanSession(Cr,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:getContextWindow(this.node)})}createPanHandlers(){const{onPanSessionStart:Cr,onPanStart:kr,onPan:Pr,onPanEnd:Rr}=this.node.getProps();return{onSessionStart:asyncHandler(Cr),onStart:asyncHandler(kr),onMove:asyncHandler(Pr),onEnd:(Ir,Fr)=>{delete this.session,Rr&&frame.postRender(()=>Rr(Ir,Fr))}}}mount(){this.removePointerDownListener=addPointerEvent(this.node.current,"pointerdown",Cr=>this.onPointerDown(Cr))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let hasTakenAnySnapshot=!1;class MeasureLayoutWithContext extends reactExports.Component{componentDidMount(){const{visualElement:Cr,layoutGroup:kr,switchLayoutGroup:Pr,layoutId:Rr}=this.props,{projection:Ir}=Cr;Ir&&(kr.group&&kr.group.add(Ir),Pr&&Pr.register&&Rr&&Pr.register(Ir),hasTakenAnySnapshot&&Ir.root.didUpdate(),Ir.addEventListener("animationComplete",()=>{this.safeToRemove()}),Ir.setOptions({...Ir.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),globalProjectionState.hasEverUpdated=!0}getSnapshotBeforeUpdate(Cr){const{layoutDependency:kr,visualElement:Pr,drag:Rr,isPresent:Ir}=this.props,{projection:Fr}=Pr;return Fr&&(Fr.isPresent=Ir,Cr.layoutDependency!==kr&&Fr.setOptions({...Fr.options,layoutDependency:kr}),hasTakenAnySnapshot=!0,Rr||Cr.layoutDependency!==kr||kr===void 0||Cr.isPresent!==Ir?Fr.willUpdate():this.safeToRemove(),Cr.isPresent!==Ir&&(Ir?Fr.promote():Fr.relegate()||frame.postRender(()=>{const Lr=Fr.getStack();(!Lr||!Lr.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{visualElement:Cr,layoutAnchor:kr}=this.props,{projection:Pr}=Cr;Pr&&(Pr.options.layoutAnchor=kr,Pr.root.didUpdate(),microtask.postRender(()=>{!Pr.currentAnimation&&Pr.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:Cr,layoutGroup:kr,switchLayoutGroup:Pr}=this.props,{projection:Rr}=Cr;hasTakenAnySnapshot=!0,Rr&&(Rr.scheduleCheckAfterUnmount(),kr&&kr.group&&kr.group.remove(Rr),Pr&&Pr.deregister&&Pr.deregister(Rr))}safeToRemove(){const{safeToRemove:Cr}=this.props;Cr&&Cr()}render(){return null}}function MeasureLayout($){const[Cr,kr]=usePresence$1(),Pr=reactExports.useContext(LayoutGroupContext);return jsxRuntimeExports.jsx(MeasureLayoutWithContext,{...$,layoutGroup:Pr,switchLayoutGroup:reactExports.useContext(SwitchLayoutGroupContext),isPresent:Cr,safeToRemove:kr})}const drag={pan:{Feature:PanGesture},drag:{Feature:DragGesture,ProjectionNode:HTMLProjectionNode,MeasureLayout}};function handleHoverEvent($,Cr,kr){const{props:Pr}=$;$.animationState&&Pr.whileHover&&$.animationState.setActive("whileHover",kr==="Start");const Rr="onHover"+kr,Ir=Pr[Rr];Ir&&frame.postRender(()=>Ir(Cr,extractEventInfo(Cr)))}class HoverGesture extends Feature{mount(){const{current:Cr}=this.node;Cr&&(this.unmount=hover(Cr,(kr,Pr)=>(handleHoverEvent(this.node,Pr,"Start"),Rr=>handleHoverEvent(this.node,Rr,"End"))))}unmount(){}}class FocusGesture extends Feature{constructor(){super(...arguments),this.isActive=!1}onFocus(){let Cr=!1;try{Cr=this.node.current.matches(":focus-visible")}catch{Cr=!0}!Cr||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=pipe(addDomEvent(this.node.current,"focus",()=>this.onFocus()),addDomEvent(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function handlePressEvent($,Cr,kr){const{props:Pr}=$;if($.current instanceof HTMLButtonElement&&$.current.disabled)return;$.animationState&&Pr.whileTap&&$.animationState.setActive("whileTap",kr==="Start");const Rr="onTap"+(kr==="End"?"":kr),Ir=Pr[Rr];Ir&&frame.postRender(()=>Ir(Cr,extractEventInfo(Cr)))}class PressGesture extends Feature{mount(){const{current:Cr}=this.node;if(!Cr)return;const{globalTapTarget:kr,propagate:Pr}=this.node.props;this.unmount=press(Cr,(Rr,Ir)=>(handlePressEvent(this.node,Ir,"Start"),(Fr,{success:Lr})=>handlePressEvent(this.node,Fr,Lr?"End":"Cancel")),{useGlobalTarget:kr,stopPropagation:(Pr==null?void 0:Pr.tap)===!1})}unmount(){}}const observerCallbacks=new WeakMap,observers=new WeakMap,fireObserverCallback=$=>{const Cr=observerCallbacks.get($.target);Cr&&Cr($)},fireAllObserverCallbacks=$=>{$.forEach(fireObserverCallback)};function initIntersectionObserver({root:$,...Cr}){const kr=$||document;observers.has(kr)||observers.set(kr,{});const Pr=observers.get(kr),Rr=JSON.stringify(Cr);return Pr[Rr]||(Pr[Rr]=new IntersectionObserver(fireAllObserverCallbacks,{root:$,...Cr})),Pr[Rr]}function observeIntersection($,Cr,kr){const Pr=initIntersectionObserver(Cr);return observerCallbacks.set($,kr),Pr.observe($),()=>{observerCallbacks.delete($),Pr.unobserve($)}}const thresholdNames={some:0,all:1};class InViewFeature extends Feature{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){var qr;(qr=this.stopObserver)==null||qr.call(this);const{viewport:Cr={}}=this.node.getProps(),{root:kr,margin:Pr,amount:Rr="some",once:Ir}=Cr,Fr={root:kr?kr.current:void 0,rootMargin:Pr,threshold:typeof Rr=="number"?Rr:thresholdNames[Rr]},Lr=fa=>{const{isIntersecting:pa}=fa;if(this.isInView===pa||(this.isInView=pa,Ir&&!pa&&this.hasEnteredView))return;pa&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",pa);const{onViewportEnter:ga,onViewportLeave:xa}=this.node.getProps(),ya=pa?ga:xa;ya&&ya(fa)};this.stopObserver=observeIntersection(this.node.current,Fr,Lr)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:Cr,prevProps:kr}=this.node;["amount","margin","root"].some(hasViewportOptionChanged(Cr,kr))&&this.startObserver()}unmount(){var Cr;(Cr=this.stopObserver)==null||Cr.call(this),this.hasEnteredView=!1,this.isInView=!1}}function hasViewportOptionChanged({viewport:$={}},{viewport:Cr={}}={}){return kr=>$[kr]!==Cr[kr]}const gestureAnimations={inView:{Feature:InViewFeature},tap:{Feature:PressGesture},focus:{Feature:FocusGesture},hover:{Feature:HoverGesture}},layout={layout:{ProjectionNode:HTMLProjectionNode,MeasureLayout}},featureBundle={...animations,...gestureAnimations,...drag,...layout},motion=createMotionProxy(featureBundle,createDomVisualElement);function stopAnimation($){$.values.forEach(Cr=>Cr.stop())}function setVariants($,Cr){[...Cr].reverse().forEach(Pr=>{const Rr=$.getVariant(Pr);Rr&&setTarget($,Rr),$.variantChildren&&$.variantChildren.forEach(Ir=>{setVariants(Ir,Cr)})})}function setValues($,Cr){if(Array.isArray(Cr))return setVariants($,Cr);if(typeof Cr=="string")return setVariants($,[Cr]);setTarget($,Cr)}function animationControls(){const $=new Set,Cr={subscribe(kr){return $.add(kr),()=>void $.delete(kr)},start(kr,Pr){const Rr=[];return $.forEach(Ir=>{Rr.push(animateVisualElement(Ir,kr,{transitionOverride:Pr}))}),Promise.all(Rr)},set(kr){return $.forEach(Pr=>{setValues(Pr,kr)})},stop(){$.forEach(kr=>{stopAnimation(kr)})},mount(){return()=>{Cr.stop()}}};return Cr}function useAnimationControls(){const $=useConstant(animationControls);return useIsomorphicLayoutEffect$1($.mount,[]),$}var reactDomExports=requireReactDom();const ReactDOM=getDefaultExportFromCjs(reactDomExports);function __insertCSS($){if(typeof document>"u")return;let Cr=document.head||document.getElementsByTagName("head")[0],kr=document.createElement("style");kr.type="text/css",Cr.appendChild(kr),kr.styleSheet?kr.styleSheet.cssText=$:kr.appendChild(document.createTextNode($))}const getAsset=$=>{switch($){case"success":return SuccessIcon;case"info":return InfoIcon;case"warning":return WarningIcon;case"error":return ErrorIcon;default:return null}},bars=Array(12).fill(0),Loader=({visible:$,className:Cr})=>React.createElement("div",{className:["sonner-loading-wrapper",Cr].filter(Boolean).join(" "),"data-visible":$},React.createElement("div",{className:"sonner-spinner"},bars.map((kr,Pr)=>React.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${Pr}`})))),SuccessIcon=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},React.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),WarningIcon=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},React.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),InfoIcon=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},React.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),ErrorIcon=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},React.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),CloseIcon=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},React.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),React.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),useIsDocumentHidden=()=>{const[$,Cr]=React.useState(document.hidden);return React.useEffect(()=>{const kr=()=>{Cr(document.hidden)};return document.addEventListener("visibilitychange",kr),()=>window.removeEventListener("visibilitychange",kr)},[]),$};let toastsCounter=1;class Observer{constructor(){this.subscribe=Cr=>(this.subscribers.push(Cr),()=>{const kr=this.subscribers.indexOf(Cr);this.subscribers.splice(kr,1)}),this.publish=Cr=>{this.subscribers.forEach(kr=>kr(Cr))},this.addToast=Cr=>{this.publish(Cr),this.toasts=[...this.toasts,Cr]},this.create=Cr=>{var kr;const{message:Pr,...Rr}=Cr,Ir=typeof(Cr==null?void 0:Cr.id)=="number"||((kr=Cr.id)==null?void 0:kr.length)>0?Cr.id:toastsCounter++,Fr=this.toasts.find(qr=>qr.id===Ir),Lr=Cr.dismissible===void 0?!0:Cr.dismissible;return this.dismissedToasts.has(Ir)&&this.dismissedToasts.delete(Ir),Fr?this.toasts=this.toasts.map(qr=>qr.id===Ir?(this.publish({...qr,...Cr,id:Ir,title:Pr}),{...qr,...Cr,id:Ir,dismissible:Lr,title:Pr}):qr):this.addToast({title:Pr,...Rr,dismissible:Lr,id:Ir}),Ir},this.dismiss=Cr=>(Cr?(this.dismissedToasts.add(Cr),requestAnimationFrame(()=>this.subscribers.forEach(kr=>kr({id:Cr,dismiss:!0})))):this.toasts.forEach(kr=>{this.subscribers.forEach(Pr=>Pr({id:kr.id,dismiss:!0}))}),Cr),this.message=(Cr,kr)=>this.create({...kr,message:Cr}),this.error=(Cr,kr)=>this.create({...kr,message:Cr,type:"error"}),this.success=(Cr,kr)=>this.create({...kr,type:"success",message:Cr}),this.info=(Cr,kr)=>this.create({...kr,type:"info",message:Cr}),this.warning=(Cr,kr)=>this.create({...kr,type:"warning",message:Cr}),this.loading=(Cr,kr)=>this.create({...kr,type:"loading",message:Cr}),this.promise=(Cr,kr)=>{if(!kr)return;let Pr;kr.loading!==void 0&&(Pr=this.create({...kr,promise:Cr,type:"loading",message:kr.loading,description:typeof kr.description!="function"?kr.description:void 0}));const Rr=Promise.resolve(Cr instanceof Function?Cr():Cr);let Ir=Pr!==void 0,Fr;const Lr=Rr.then(async fa=>{if(Fr=["resolve",fa],React.isValidElement(fa))Ir=!1,this.create({id:Pr,type:"default",message:fa});else if(isHttpResponse(fa)&&!fa.ok){Ir=!1;const ga=typeof kr.error=="function"?await kr.error(`HTTP error! status: ${fa.status}`):kr.error,xa=typeof kr.description=="function"?await kr.description(`HTTP error! status: ${fa.status}`):kr.description,ba=typeof ga=="object"&&!React.isValidElement(ga)?ga:{message:ga};this.create({id:Pr,type:"error",description:xa,...ba})}else if(fa instanceof Error){Ir=!1;const ga=typeof kr.error=="function"?await kr.error(fa):kr.error,xa=typeof kr.description=="function"?await kr.description(fa):kr.description,ba=typeof ga=="object"&&!React.isValidElement(ga)?ga:{message:ga};this.create({id:Pr,type:"error",description:xa,...ba})}else if(kr.success!==void 0){Ir=!1;const ga=typeof kr.success=="function"?await kr.success(fa):kr.success,xa=typeof kr.description=="function"?await kr.description(fa):kr.description,ba=typeof ga=="object"&&!React.isValidElement(ga)?ga:{message:ga};this.create({id:Pr,type:"success",description:xa,...ba})}}).catch(async fa=>{if(Fr=["reject",fa],kr.error!==void 0){Ir=!1;const pa=typeof kr.error=="function"?await kr.error(fa):kr.error,ga=typeof kr.description=="function"?await kr.description(fa):kr.description,ya=typeof pa=="object"&&!React.isValidElement(pa)?pa:{message:pa};this.create({id:Pr,type:"error",description:ga,...ya})}}).finally(()=>{Ir&&(this.dismiss(Pr),Pr=void 0),kr.finally==null||kr.finally.call(kr)}),qr=()=>new Promise((fa,pa)=>Lr.then(()=>Fr[0]==="reject"?pa(Fr[1]):fa(Fr[1])).catch(pa));return typeof Pr!="string"&&typeof Pr!="number"?{unwrap:qr}:Object.assign(Pr,{unwrap:qr})},this.custom=(Cr,kr)=>{const Pr=(kr==null?void 0:kr.id)||toastsCounter++;return this.create({jsx:Cr(Pr),id:Pr,...kr}),Pr},this.getActiveToasts=()=>this.toasts.filter(Cr=>!this.dismissedToasts.has(Cr.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const ToastState=new Observer,toastFunction=($,Cr)=>{const kr=(Cr==null?void 0:Cr.id)||toastsCounter++;return ToastState.addToast({title:$,...Cr,id:kr}),kr},isHttpResponse=$=>$&&typeof $=="object"&&"ok"in $&&typeof $.ok=="boolean"&&"status"in $&&typeof $.status=="number",basicToast=toastFunction,getHistory=()=>ToastState.toasts,getToasts=()=>ToastState.getActiveToasts(),toast=Object.assign(basicToast,{success:ToastState.success,info:ToastState.info,warning:ToastState.warning,error:ToastState.error,custom:ToastState.custom,message:ToastState.message,promise:ToastState.promise,dismiss:ToastState.dismiss,loading:ToastState.loading},{getHistory,getToasts});__insertCSS("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function isAction($){return $.label!==void 0}const VISIBLE_TOASTS_AMOUNT=3,VIEWPORT_OFFSET="24px",MOBILE_VIEWPORT_OFFSET="16px",TOAST_LIFETIME=4e3,TOAST_WIDTH=356,GAP=14,SWIPE_THRESHOLD=45,TIME_BEFORE_UNMOUNT=200;function cn$1(...$){return $.filter(Boolean).join(" ")}function getDefaultSwipeDirections($){const[Cr,kr]=$.split("-"),Pr=[];return Cr&&Pr.push(Cr),kr&&Pr.push(kr),Pr}const Toast=$=>{var Cr,kr,Pr,Rr,Ir,Fr,Lr,qr,fa;const{invert:pa,toast:ga,unstyled:xa,interacting:ya,setHeights:ba,visibleToasts:Aa,heights:ka,index:Ea,toasts:Sa,expanded:Ca,removeToast:Ta,defaultRichColors:Ia,closeButton:Ra,style:ja,cancelButtonStyle:Oa,actionButtonStyle:La,className:Ha="",descriptionClassName:Wa="",duration:Ja,position:Ya,gap:Za,expandByDefault:Qa,classNames:Na,icons:Ka,closeButtonAriaLabel:Fa="Close toast"}=$,[Va,Da]=React.useState(null),[Ba,Ga]=React.useState(null),[Ua,qa]=React.useState(!1),[$a,tl]=React.useState(!1),[ll,ol]=React.useState(!1),[_a,nl]=React.useState(!1),[il,ul]=React.useState(!1),[sl,rl]=React.useState(0),[xl,El]=React.useState(0),Cl=React.useRef(ga.duration||Ja||TOAST_LIFETIME),Ml=React.useRef(null),hl=React.useRef(null),yl=Ea===0,Tl=Ea+1<=Aa,jl=ga.type,Dl=ga.dismissible!==!1,Bl=ga.className||"",$l=ga.descriptionClassName||"",fl=React.useMemo(()=>ka.findIndex(Ql=>Ql.toastId===ga.id)||0,[ka,ga.id]),vl=React.useMemo(()=>{var Ql;return(Ql=ga.closeButton)!=null?Ql:Ra},[ga.closeButton,Ra]),Pl=React.useMemo(()=>ga.duration||Ja||TOAST_LIFETIME,[ga.duration,Ja]),Hl=React.useRef(0),Wl=React.useRef(0),sc=React.useRef(0),Ac=React.useRef(null),[kc,Uc]=Ya.split("-"),Nc=React.useMemo(()=>ka.reduce((Ql,pc,bc)=>bc>=fl?Ql:Ql+pc.height,0),[ka,fl]),cc=useIsDocumentHidden(),Oc=ga.invert||pa,gc=jl==="loading";Wl.current=React.useMemo(()=>fl*Za+Nc,[fl,Nc]),React.useEffect(()=>{Cl.current=Pl},[Pl]),React.useEffect(()=>{qa(!0)},[]),React.useEffect(()=>{const Ql=hl.current;if(Ql){const pc=Ql.getBoundingClientRect().height;return El(pc),ba(bc=>[{toastId:ga.id,height:pc,position:ga.position},...bc]),()=>ba(bc=>bc.filter(Sl=>Sl.toastId!==ga.id))}},[ba,ga.id]),React.useLayoutEffect(()=>{if(!Ua)return;const Ql=hl.current,pc=Ql.style.height;Ql.style.height="auto";const bc=Ql.getBoundingClientRect().height;Ql.style.height=pc,El(bc),ba(Sl=>Sl.find(Vl=>Vl.toastId===ga.id)?Sl.map(Vl=>Vl.toastId===ga.id?{...Vl,height:bc}:Vl):[{toastId:ga.id,height:bc,position:ga.position},...Sl])},[Ua,ga.title,ga.description,ba,ga.id,ga.jsx,ga.action,ga.cancel]);const Gc=React.useCallback(()=>{tl(!0),rl(Wl.current),ba(Ql=>Ql.filter(pc=>pc.toastId!==ga.id)),setTimeout(()=>{Ta(ga)},TIME_BEFORE_UNMOUNT)},[ga,Ta,ba,Wl]);React.useEffect(()=>{if(ga.promise&&jl==="loading"||ga.duration===1/0||ga.type==="loading")return;let Ql;return Ca||ya||cc?(()=>{if(sc.current<Hl.current){const Sl=new Date().getTime()-Hl.current;Cl.current=Cl.current-Sl}sc.current=new Date().getTime()})():(()=>{Cl.current!==1/0&&(Hl.current=new Date().getTime(),Ql=setTimeout(()=>{ga.onAutoClose==null||ga.onAutoClose.call(ga,ga),Gc()},Cl.current))})(),()=>clearTimeout(Ql)},[Ca,ya,ga,jl,cc,Gc]),React.useEffect(()=>{ga.delete&&(Gc(),ga.onDismiss==null||ga.onDismiss.call(ga,ga))},[Gc,ga.delete]);function Xu(){var Ql;if(Ka!=null&&Ka.loading){var pc;return React.createElement("div",{className:cn$1(Na==null?void 0:Na.loader,ga==null||(pc=ga.classNames)==null?void 0:pc.loader,"sonner-loader"),"data-visible":jl==="loading"},Ka.loading)}return React.createElement(Loader,{className:cn$1(Na==null?void 0:Na.loader,ga==null||(Ql=ga.classNames)==null?void 0:Ql.loader),visible:jl==="loading"})}const Zc=ga.icon||(Ka==null?void 0:Ka[jl])||getAsset(jl);var eu,au;return React.createElement("li",{tabIndex:0,ref:hl,className:cn$1(Ha,Bl,Na==null?void 0:Na.toast,ga==null||(Cr=ga.classNames)==null?void 0:Cr.toast,Na==null?void 0:Na.default,Na==null?void 0:Na[jl],ga==null||(kr=ga.classNames)==null?void 0:kr[jl]),"data-sonner-toast":"","data-rich-colors":(eu=ga.richColors)!=null?eu:Ia,"data-styled":!(ga.jsx||ga.unstyled||xa),"data-mounted":Ua,"data-promise":!!ga.promise,"data-swiped":il,"data-removed":$a,"data-visible":Tl,"data-y-position":kc,"data-x-position":Uc,"data-index":Ea,"data-front":yl,"data-swiping":ll,"data-dismissible":Dl,"data-type":jl,"data-invert":Oc,"data-swipe-out":_a,"data-swipe-direction":Ba,"data-expanded":!!(Ca||Qa&&Ua),"data-testid":ga.testId,style:{"--index":Ea,"--toasts-before":Ea,"--z-index":Sa.length-Ea,"--offset":`${$a?sl:Wl.current}px`,"--initial-height":Qa?"auto":`${xl}px`,...ja,...ga.style},onDragEnd:()=>{ol(!1),Da(null),Ac.current=null},onPointerDown:Ql=>{Ql.button!==2&&(gc||!Dl||(Ml.current=new Date,rl(Wl.current),Ql.target.setPointerCapture(Ql.pointerId),Ql.target.tagName!=="BUTTON"&&(ol(!0),Ac.current={x:Ql.clientX,y:Ql.clientY})))},onPointerUp:()=>{var Ql,pc,bc;if(_a||!Dl)return;Ac.current=null;const Sl=Number(((Ql=hl.current)==null?void 0:Ql.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Il=Number(((pc=hl.current)==null?void 0:pc.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Vl=new Date().getTime()-((bc=Ml.current)==null?void 0:bc.getTime()),zl=Va==="x"?Sl:Il,Zl=Math.abs(zl)/Vl;if(Math.abs(zl)>=SWIPE_THRESHOLD||Zl>.11){rl(Wl.current),ga.onDismiss==null||ga.onDismiss.call(ga,ga),Ga(Va==="x"?Sl>0?"right":"left":Il>0?"down":"up"),Gc(),nl(!0);return}else{var Jl,ec;(Jl=hl.current)==null||Jl.style.setProperty("--swipe-amount-x","0px"),(ec=hl.current)==null||ec.style.setProperty("--swipe-amount-y","0px")}ul(!1),ol(!1),Da(null)},onPointerMove:Ql=>{var pc,bc,Sl;if(!Ac.current||!Dl||((pc=window.getSelection())==null?void 0:pc.toString().length)>0)return;const Vl=Ql.clientY-Ac.current.y,zl=Ql.clientX-Ac.current.x;var Zl;const Jl=(Zl=$.swipeDirections)!=null?Zl:getDefaultSwipeDirections(Ya);!Va&&(Math.abs(zl)>1||Math.abs(Vl)>1)&&Da(Math.abs(zl)>Math.abs(Vl)?"x":"y");let ec={x:0,y:0};const ac=rc=>1/(1.5+Math.abs(rc)/20);if(Va==="y"){if(Jl.includes("top")||Jl.includes("bottom"))if(Jl.includes("top")&&Vl<0||Jl.includes("bottom")&&Vl>0)ec.y=Vl;else{const rc=Vl*ac(Vl);ec.y=Math.abs(rc)<Math.abs(Vl)?rc:Vl}}else if(Va==="x"&&(Jl.includes("left")||Jl.includes("right")))if(Jl.includes("left")&&zl<0||Jl.includes("right")&&zl>0)ec.x=zl;else{const rc=zl*ac(zl);ec.x=Math.abs(rc)<Math.abs(zl)?rc:zl}(Math.abs(ec.x)>0||Math.abs(ec.y)>0)&&ul(!0),(bc=hl.current)==null||bc.style.setProperty("--swipe-amount-x",`${ec.x}px`),(Sl=hl.current)==null||Sl.style.setProperty("--swipe-amount-y",`${ec.y}px`)}},vl&&!ga.jsx&&jl!=="loading"?React.createElement("button",{"aria-label":Fa,"data-disabled":gc,"data-close-button":!0,onClick:gc||!Dl?()=>{}:()=>{Gc(),ga.onDismiss==null||ga.onDismiss.call(ga,ga)},className:cn$1(Na==null?void 0:Na.closeButton,ga==null||(Pr=ga.classNames)==null?void 0:Pr.closeButton)},(au=Ka==null?void 0:Ka.close)!=null?au:CloseIcon):null,(jl||ga.icon||ga.promise)&&ga.icon!==null&&((Ka==null?void 0:Ka[jl])!==null||ga.icon)?React.createElement("div",{"data-icon":"",className:cn$1(Na==null?void 0:Na.icon,ga==null||(Rr=ga.classNames)==null?void 0:Rr.icon)},ga.promise||ga.type==="loading"&&!ga.icon?ga.icon||Xu():null,ga.type!=="loading"?Zc:null):null,React.createElement("div",{"data-content":"",className:cn$1(Na==null?void 0:Na.content,ga==null||(Ir=ga.classNames)==null?void 0:Ir.content)},React.createElement("div",{"data-title":"",className:cn$1(Na==null?void 0:Na.title,ga==null||(Fr=ga.classNames)==null?void 0:Fr.title)},ga.jsx?ga.jsx:typeof ga.title=="function"?ga.title():ga.title),ga.description?React.createElement("div",{"data-description":"",className:cn$1(Wa,$l,Na==null?void 0:Na.description,ga==null||(Lr=ga.classNames)==null?void 0:Lr.description)},typeof ga.description=="function"?ga.description():ga.description):null),React.isValidElement(ga.cancel)?ga.cancel:ga.cancel&&isAction(ga.cancel)?React.createElement("button",{"data-button":!0,"data-cancel":!0,style:ga.cancelButtonStyle||Oa,onClick:Ql=>{isAction(ga.cancel)&&Dl&&(ga.cancel.onClick==null||ga.cancel.onClick.call(ga.cancel,Ql),Gc())},className:cn$1(Na==null?void 0:Na.cancelButton,ga==null||(qr=ga.classNames)==null?void 0:qr.cancelButton)},ga.cancel.label):null,React.isValidElement(ga.action)?ga.action:ga.action&&isAction(ga.action)?React.createElement("button",{"data-button":!0,"data-action":!0,style:ga.actionButtonStyle||La,onClick:Ql=>{isAction(ga.action)&&(ga.action.onClick==null||ga.action.onClick.call(ga.action,Ql),!Ql.defaultPrevented&&Gc())},className:cn$1(Na==null?void 0:Na.actionButton,ga==null||(fa=ga.classNames)==null?void 0:fa.actionButton)},ga.action.label):null)};function getDocumentDirection(){if(typeof window>"u"||typeof document>"u")return"ltr";const $=document.documentElement.getAttribute("dir");return $==="auto"||!$?window.getComputedStyle(document.documentElement).direction:$}function assignOffset($,Cr){const kr={};return[$,Cr].forEach((Pr,Rr)=>{const Ir=Rr===1,Fr=Ir?"--mobile-offset":"--offset",Lr=Ir?MOBILE_VIEWPORT_OFFSET:VIEWPORT_OFFSET;function qr(fa){["top","right","bottom","left"].forEach(pa=>{kr[`${Fr}-${pa}`]=typeof fa=="number"?`${fa}px`:fa})}typeof Pr=="number"||typeof Pr=="string"?qr(Pr):typeof Pr=="object"?["top","right","bottom","left"].forEach(fa=>{Pr[fa]===void 0?kr[`${Fr}-${fa}`]=Lr:kr[`${Fr}-${fa}`]=typeof Pr[fa]=="number"?`${Pr[fa]}px`:Pr[fa]}):qr(Lr)}),kr}const Toaster=React.forwardRef(function(Cr,kr){const{id:Pr,invert:Rr,position:Ir="bottom-right",hotkey:Fr=["altKey","KeyT"],expand:Lr,closeButton:qr,className:fa,offset:pa,mobileOffset:ga,theme:xa="light",richColors:ya,duration:ba,style:Aa,visibleToasts:ka=VISIBLE_TOASTS_AMOUNT,toastOptions:Ea,dir:Sa=getDocumentDirection(),gap:Ca=GAP,icons:Ta,containerAriaLabel:Ia="Notifications"}=Cr,[Ra,ja]=React.useState([]),Oa=React.useMemo(()=>Pr?Ra.filter(Ua=>Ua.toasterId===Pr):Ra.filter(Ua=>!Ua.toasterId),[Ra,Pr]),La=React.useMemo(()=>Array.from(new Set([Ir].concat(Oa.filter(Ua=>Ua.position).map(Ua=>Ua.position)))),[Oa,Ir]),[Ha,Wa]=React.useState([]),[Ja,Ya]=React.useState(!1),[Za,Qa]=React.useState(!1),[Na,Ka]=React.useState(xa!=="system"?xa:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),Fa=React.useRef(null),Va=Fr.join("+").replace(/Key/g,"").replace(/Digit/g,""),Da=React.useRef(null),Ba=React.useRef(!1),Ga=React.useCallback(Ua=>{ja(qa=>{var $a;return($a=qa.find(tl=>tl.id===Ua.id))!=null&&$a.delete||ToastState.dismiss(Ua.id),qa.filter(({id:tl})=>tl!==Ua.id)})},[]);return React.useEffect(()=>ToastState.subscribe(Ua=>{if(Ua.dismiss){requestAnimationFrame(()=>{ja(qa=>qa.map($a=>$a.id===Ua.id?{...$a,delete:!0}:$a))});return}setTimeout(()=>{ReactDOM.flushSync(()=>{ja(qa=>{const $a=qa.findIndex(tl=>tl.id===Ua.id);return $a!==-1?[...qa.slice(0,$a),{...qa[$a],...Ua},...qa.slice($a+1)]:[Ua,...qa]})})})}),[Ra]),React.useEffect(()=>{if(xa!=="system"){Ka(xa);return}if(xa==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?Ka("dark"):Ka("light")),typeof window>"u")return;const Ua=window.matchMedia("(prefers-color-scheme: dark)");try{Ua.addEventListener("change",({matches:qa})=>{Ka(qa?"dark":"light")})}catch{Ua.addListener(({matches:$a})=>{try{Ka($a?"dark":"light")}catch(tl){console.error(tl)}})}},[xa]),React.useEffect(()=>{Ra.length<=1&&Ya(!1)},[Ra]),React.useEffect(()=>{const Ua=qa=>{var $a;if(Fr.every(ol=>qa[ol]||qa.code===ol)){var ll;Ya(!0),(ll=Fa.current)==null||ll.focus()}qa.code==="Escape"&&(document.activeElement===Fa.current||($a=Fa.current)!=null&&$a.contains(document.activeElement))&&Ya(!1)};return document.addEventListener("keydown",Ua),()=>document.removeEventListener("keydown",Ua)},[Fr]),React.useEffect(()=>{if(Fa.current)return()=>{Da.current&&(Da.current.focus({preventScroll:!0}),Da.current=null,Ba.current=!1)}},[Fa.current]),React.createElement("section",{ref:kr,"aria-label":`${Ia} ${Va}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},La.map((Ua,qa)=>{var $a;const[tl,ll]=Ua.split("-");return Oa.length?React.createElement("ol",{key:Ua,dir:Sa==="auto"?getDocumentDirection():Sa,tabIndex:-1,ref:Fa,className:fa,"data-sonner-toaster":!0,"data-sonner-theme":Na,"data-y-position":tl,"data-x-position":ll,style:{"--front-toast-height":`${(($a=Ha[0])==null?void 0:$a.height)||0}px`,"--width":`${TOAST_WIDTH}px`,"--gap":`${Ca}px`,...Aa,...assignOffset(pa,ga)},onBlur:ol=>{Ba.current&&!ol.currentTarget.contains(ol.relatedTarget)&&(Ba.current=!1,Da.current&&(Da.current.focus({preventScroll:!0}),Da.current=null))},onFocus:ol=>{ol.target instanceof HTMLElement&&ol.target.dataset.dismissible==="false"||Ba.current||(Ba.current=!0,Da.current=ol.relatedTarget)},onMouseEnter:()=>Ya(!0),onMouseMove:()=>Ya(!0),onMouseLeave:()=>{Za||Ya(!1)},onDragEnd:()=>Ya(!1),onPointerDown:ol=>{ol.target instanceof HTMLElement&&ol.target.dataset.dismissible==="false"||Qa(!0)},onPointerUp:()=>Qa(!1)},Oa.filter(ol=>!ol.position&&qa===0||ol.position===Ua).map((ol,_a)=>{var nl,il;return React.createElement(Toast,{key:ol.id,icons:Ta,index:_a,toast:ol,defaultRichColors:ya,duration:(nl=Ea==null?void 0:Ea.duration)!=null?nl:ba,className:Ea==null?void 0:Ea.className,descriptionClassName:Ea==null?void 0:Ea.descriptionClassName,invert:Rr,visibleToasts:ka,closeButton:(il=Ea==null?void 0:Ea.closeButton)!=null?il:qr,interacting:Za,position:Ua,style:Ea==null?void 0:Ea.style,unstyled:Ea==null?void 0:Ea.unstyled,classNames:Ea==null?void 0:Ea.classNames,cancelButtonStyle:Ea==null?void 0:Ea.cancelButtonStyle,actionButtonStyle:Ea==null?void 0:Ea.actionButtonStyle,closeButtonAriaLabel:Ea==null?void 0:Ea.closeButtonAriaLabel,removeToast:Ga,toasts:Oa.filter(ul=>ul.position==ol.position),heights:Ha.filter(ul=>ul.position==ol.position),setHeights:Wa,expandByDefault:Lr,gap:Ca,expanded:Ja,swipeDirections:Cr.swipeDirections})})):null}))}),Ok=$=>({ok:!0,value:$}),Err=$=>({ok:!1,error:$}),changeKey=($,Cr)=>`style:${$}:${Cr}`,textChangeKey=$=>`text:${$}`,getElementIdentityCandidates=$=>{const Cr=[$.rivetId,$.xpath,$.cssSelector].filter(kr=>!!kr).map(kr=>kr.trim()).filter(Boolean);return Cr.length>0?[...new Set(Cr)]:["unknown"]},getElementIdentityKey=$=>getElementIdentityCandidates($)[0],matchesElementIdentity=($,Cr)=>getElementIdentityCandidates($).includes(Cr),changeKeyFromChange=$=>{const Cr=getElementIdentityKey($.elementId),kr=$.batchId?`:${$.batchId}`:"";return $.type==="style"?`${changeKey(Cr,$.property)}${kr}`:`${textChangeKey(Cr)}${kr}`};class DOMError extends Error{constructor(Cr){super(Cr),this.name="DOMError"}}class ElementNotFoundError extends DOMError{constructor(Cr,kr){super(kr||`Element not found: rivetId=${Cr.rivetId}, xpath=${Cr.xpath}`),this.identifier=Cr,this.name="ElementNotFoundError"}}class StyleApplicationError extends DOMError{constructor(Cr,kr,Pr){super(Pr||`Failed to apply style: ${Cr} = ${kr}. Value may be invalid.`),this.property=Cr,this.value=kr,this.name="StyleApplicationError"}}const byteToHex=[];for(let $=0;$<256;++$)byteToHex.push(($+256).toString(16).slice(1));function unsafeStringify($,Cr=0){return(byteToHex[$[Cr+0]]+byteToHex[$[Cr+1]]+byteToHex[$[Cr+2]]+byteToHex[$[Cr+3]]+"-"+byteToHex[$[Cr+4]]+byteToHex[$[Cr+5]]+"-"+byteToHex[$[Cr+6]]+byteToHex[$[Cr+7]]+"-"+byteToHex[$[Cr+8]]+byteToHex[$[Cr+9]]+"-"+byteToHex[$[Cr+10]]+byteToHex[$[Cr+11]]+byteToHex[$[Cr+12]]+byteToHex[$[Cr+13]]+byteToHex[$[Cr+14]]+byteToHex[$[Cr+15]]).toLowerCase()}let getRandomValues;const rnds8=new Uint8Array(16);function rng(){if(!getRandomValues){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");getRandomValues=crypto.getRandomValues.bind(crypto)}return getRandomValues(rnds8)}const randomUUID=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),native={randomUUID};function _v4($,Cr,kr){var Rr;$=$||{};const Pr=$.random??((Rr=$.rng)==null?void 0:Rr.call($))??rng();if(Pr.length<16)throw new Error("Random bytes length must be >= 16");return Pr[6]=Pr[6]&15|64,Pr[8]=Pr[8]&63|128,unsafeStringify(Pr)}function v4($,Cr,kr){return native.randomUUID&&!$?native.randomUUID():_v4($)}var loglevel$1={exports:{}},loglevel=loglevel$1.exports,hasRequiredLoglevel;function requireLoglevel(){return hasRequiredLoglevel||(hasRequiredLoglevel=1,(function($){(function(Cr,kr){$.exports?$.exports=kr():Cr.log=kr()})(loglevel,function(){var Cr=function(){},kr="undefined",Pr=typeof window!==kr&&typeof window.navigator!==kr&&/Trident\/|MSIE /.test(window.navigator.userAgent),Rr=["trace","debug","info","warn","error"],Ir={},Fr=null;function Lr(Aa,ka){var Ea=Aa[ka];if(typeof Ea.bind=="function")return Ea.bind(Aa);try{return Function.prototype.bind.call(Ea,Aa)}catch{return function(){return Function.prototype.apply.apply(Ea,[Aa,arguments])}}}function qr(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function fa(Aa){return Aa==="debug"&&(Aa="log"),typeof console===kr?!1:Aa==="trace"&&Pr?qr:console[Aa]!==void 0?Lr(console,Aa):console.log!==void 0?Lr(console,"log"):Cr}function pa(){for(var Aa=this.getLevel(),ka=0;ka<Rr.length;ka++){var Ea=Rr[ka];this[Ea]=ka<Aa?Cr:this.methodFactory(Ea,Aa,this.name)}if(this.log=this.debug,typeof console===kr&&Aa<this.levels.SILENT)return"No console available for logging"}function ga(Aa){return function(){typeof console!==kr&&(pa.call(this),this[Aa].apply(this,arguments))}}function xa(Aa,ka,Ea){return fa(Aa)||ga.apply(this,arguments)}function ya(Aa,ka){var Ea=this,Sa,Ca,Ta,Ia="loglevel";typeof Aa=="string"?Ia+=":"+Aa:typeof Aa=="symbol"&&(Ia=void 0);function Ra(Wa){var Ja=(Rr[Wa]||"silent").toUpperCase();if(!(typeof window===kr||!Ia)){try{window.localStorage[Ia]=Ja;return}catch{}try{window.document.cookie=encodeURIComponent(Ia)+"="+Ja+";"}catch{}}}function ja(){var Wa;if(!(typeof window===kr||!Ia)){try{Wa=window.localStorage[Ia]}catch{}if(typeof Wa===kr)try{var Ja=window.document.cookie,Ya=encodeURIComponent(Ia),Za=Ja.indexOf(Ya+"=");Za!==-1&&(Wa=/^([^;]+)/.exec(Ja.slice(Za+Ya.length+1))[1])}catch{}return Ea.levels[Wa]===void 0&&(Wa=void 0),Wa}}function Oa(){if(!(typeof window===kr||!Ia)){try{window.localStorage.removeItem(Ia)}catch{}try{window.document.cookie=encodeURIComponent(Ia)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function La(Wa){var Ja=Wa;if(typeof Ja=="string"&&Ea.levels[Ja.toUpperCase()]!==void 0&&(Ja=Ea.levels[Ja.toUpperCase()]),typeof Ja=="number"&&Ja>=0&&Ja<=Ea.levels.SILENT)return Ja;throw new TypeError("log.setLevel() called with invalid level: "+Wa)}Ea.name=Aa,Ea.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},Ea.methodFactory=ka||xa,Ea.getLevel=function(){return Ta??Ca??Sa},Ea.setLevel=function(Wa,Ja){return Ta=La(Wa),Ja!==!1&&Ra(Ta),pa.call(Ea)},Ea.setDefaultLevel=function(Wa){Ca=La(Wa),ja()||Ea.setLevel(Wa,!1)},Ea.resetLevel=function(){Ta=null,Oa(),pa.call(Ea)},Ea.enableAll=function(Wa){Ea.setLevel(Ea.levels.TRACE,Wa)},Ea.disableAll=function(Wa){Ea.setLevel(Ea.levels.SILENT,Wa)},Ea.rebuild=function(){if(Fr!==Ea&&(Sa=La(Fr.getLevel())),pa.call(Ea),Fr===Ea)for(var Wa in Ir)Ir[Wa].rebuild()},Sa=La(Fr?Fr.getLevel():"WARN");var Ha=ja();Ha!=null&&(Ta=La(Ha)),pa.call(Ea)}Fr=new ya,Fr.getLogger=function(ka){if(typeof ka!="symbol"&&typeof ka!="string"||ka==="")throw new TypeError("You must supply a name when creating a logger.");var Ea=Ir[ka];return Ea||(Ea=Ir[ka]=new ya(ka,Fr.methodFactory)),Ea};var ba=typeof window!==kr?window.log:void 0;return Fr.noConflict=function(){return typeof window!==kr&&window.log===Fr&&(window.log=ba),Fr},Fr.getLoggers=function(){return Ir},Fr.default=Fr,Fr})})(loglevel$1)),loglevel$1.exports}var loglevelExports=requireLoglevel();const log$x=getDefaultExportFromCjs(loglevelExports),defaultLevel="INFO",LOG_LEVEL=defaultLevel.toUpperCase();log$x.setLevel(log$x.levels[LOG_LEVEL]||log$x.levels.INFO);const createLogger=$=>{const Cr=$?`[${$}] `:"";return{trace:(kr,...Pr)=>log$x.trace(`${Cr}${kr}`,...Pr),debug:(kr,...Pr)=>log$x.debug(`${Cr}${kr}`,...Pr),info:(kr,...Pr)=>log$x.info(`${Cr}${kr}`,...Pr),warn:(kr,...Pr)=>log$x.warn(`${Cr}${kr}`,...Pr),error:(kr,...Pr)=>{log$x.error(`${Cr}${kr}`,...Pr);try{const Ir=Pr.map(Lr=>Lr instanceof Error?Lr.message:String(Lr)).join(" ").slice(0,512),Fr={source:"ui",error_message:kr,service:$??"unknown",error_type:"logged_error",url:window.location.pathname,error_args_count:Pr.length,...Ir?{error_detail:Ir}:{}};va.capture("logger_error",Fr)}catch(Rr){console.error("[logger] Failed to send logger_error to PostHog:",Rr)}},api:(kr,...Pr)=>log$x.info(`${Cr}API: ${kr}`,...Pr),hook:(kr,...Pr)=>log$x.debug(`${Cr}Hook: ${kr}`,...Pr),mount:(kr,...Pr)=>log$x.debug(`${Cr}Mount: ${kr}`,...Pr)}},TAILWIND_SPACING_PX={0:0,"0.5":2,1:4,"1.5":6,2:8,"2.5":10,3:12,"3.5":14,4:16,5:20,6:24,7:28,8:32,9:36,10:40,11:44,12:48,14:56,16:64,20:80,24:96,28:112,32:128,36:144,40:160,44:176,48:192,52:208,56:224,60:240,64:256,72:288,80:320,96:384},DEFAULT_TAILWIND_SCALE=TAILWIND_SPACING_PX,DEFAULT_PX_TO_TAILWIND=new Map;for(const[$,Cr]of Object.entries(TAILWIND_SPACING_PX))DEFAULT_PX_TO_TAILWIND.set(Cr,$);const PX_TOLERANCE=1,pxToTailwindClass=($,Cr,kr=DEFAULT_TAILWIND_SCALE)=>{const Pr=$.match(/^(\d+(?:\.\d+)?)px$/);if(!Pr)return $;const Rr=parseFloat(Pr[1]),Ir=Math.round(Rr),Lr=(kr===DEFAULT_TAILWIND_SCALE?DEFAULT_PX_TO_TAILWIND:new Map(Object.entries(kr).map(([qr,fa])=>[Math.round(fa),qr]))).get(Ir);if(Lr!==void 0)return`${Cr==="width"?"w":"h"}-${Lr}`;for(const[qr,fa]of Object.entries(kr))if(Math.abs(Rr-fa)<=PX_TOLERANCE)return`${Cr==="width"?"w":"h"}-${qr}`;return $},tailwindClassToPx=($,Cr=DEFAULT_TAILWIND_SCALE)=>{const kr=$.match(/^(w|h)-(.+)$/);if(!kr)return $;const Pr=kr[2],Rr=Cr[Pr];return Rr===void 0?$:`${Rr}px`},log$w=createLogger("StyleManipulationService");class StyleManipulationService{constructor(Cr,kr){oc(this,"hmrUnsubscribe",null);this.adapter=Cr,this.tracker=kr,this.hmrUnsubscribe=this.adapter.onHMR(()=>{this.handleHMR()})}async previewStyleChange(Cr,kr,Pr){return this.adapter.applyStyle(Cr,kr,Pr)}async applyStyleChange(Cr,kr,Pr,Rr,Ir,Fr){let Lr;if(Ir!==void 0)Lr=Ir;else{const pa=await this.adapter.getComputedStylesForElement(Cr);if(!pa.ok)return Err(pa.error);Lr=pa.value[Pr]||""}const qr=await this.adapter.applyStyle(Cr,Pr,Rr);if(!qr.ok)return Err(qr.error);const fa={type:"style",id:v4(),timestamp:Date.now(),elementId:Cr,elementContext:kr,property:Pr,oldValue:Lr,newValue:Fr??Rr};return this.tracker.recordChange(fa),Ok(void 0)}recordTextChange(Cr,kr,Pr,Rr){const Ir={type:"text",id:v4(),timestamp:Date.now(),elementId:Cr,elementContext:kr,oldText:Pr,newText:Rr};this.tracker.recordChange(Ir)}async undo(){const Cr=this.tracker.undo();return Cr?await this.clearAndReapply(Cr):Ok(void 0)}async redo(){const Cr=this.tracker.getChanges();return this.tracker.redo()?await this.clearAndReapply(Cr):Ok(void 0)}getChanges(){return this.tracker.getChanges()}getStyleChanges(){return this.tracker.getStyleChanges()}getTextChanges(){return this.tracker.getTextChanges()}getChangeCount(){return this.tracker.getChangeCount()}canUndo(){return this.tracker.canUndo()}canRedo(){return this.tracker.canRedo()}flushPending(){this.tracker.flushPending()}async revertSpecificChange(Cr){const kr=changeKeyFromChange(Cr),Pr=await this.adapter.findElement(Cr.elementId);if(!Pr.ok){const Fr=Pr.error;return Err(Fr instanceof Error?Fr:new Error(String(Fr)))}const Rr=Pr.value;try{Cr.type==="style"?Cr.property==="width"||Cr.property==="height"?Rr.style[Cr.property]="":Rr.style[Cr.property]=Cr.oldValue:Rr.textContent=Cr.oldText}catch(Fr){return log$w.warn("Failed to revert specific change:",Fr),Err(Fr instanceof Error?Fr:new Error("Failed to revert change"))}return this.tracker.removeChange(kr)||log$w.warn("removeChange found no entry for key:",kr),Ok(void 0)}clear(){this.tracker.clear()}removeTrackedChangeById(Cr){return this.tracker.removeChangeById(Cr)!==null}async transaction(Cr){await this.tracker.transaction(Cr)}getChangesForElement(Cr){return this.tracker.getChanges().filter(kr=>matchesElementIdentity(kr.elementId,Cr))}hasChanges(Cr){return this.tracker.hasChanges(Cr)}onChange(Cr){return this.tracker.onChange(Cr)}async handleHMR(){log$w.info("HMR detected, reapplying changes"),await new Promise(kr=>setTimeout(kr,100));const Cr=await this.reapplyAllChanges({stylesOnly:!0});Cr.ok||log$w.warn("Failed to reapply changes after HMR:",Cr.error)}async clearAndReapply(Cr){for(const kr of Cr){const Pr=await this.adapter.findElement(kr.elementId);if(Pr.ok){const Rr=Pr.value;try{kr.type==="style"?kr.property==="width"||kr.property==="height"?Rr.style[kr.property]="":Rr.style[kr.property]=kr.oldValue:Rr.textContent=kr.oldText}catch(Ir){log$w.warn("Failed to restore baseline:",Ir)}}}return await this.reapplyAllChanges()}async reapplyAllChanges(Cr={}){const kr=this.tracker.getChanges(),Pr=Cr.stylesOnly?kr.filter(Ir=>Ir.type==="style"):kr,Rr=[];for(const Ir of Pr)if(Ir.type==="style"){const Fr=Ir.property==="width"||Ir.property==="height"?tailwindClassToPx(Ir.newValue):Ir.newValue,Lr=await this.adapter.applyStyle(Ir.elementId,Ir.property,Fr);Lr.ok||Rr.push({change:Ir,error:Lr.error})}else{const Fr=await this.adapter.findElement(Ir.elementId);if(Fr.ok){const Lr=Fr.value;Lr.textContent=Ir.newText}else Rr.push({change:Ir,error:Fr.error})}return Rr.length>0?(log$w.warn(`Failed to reapply ${Rr.length}/${Pr.length} changes`,Rr),Err(new Error(`Failed to reapply ${Rr.length} changes. First error: ${Rr[0].error.message}`))):Ok(void 0)}async clearInlineChanges(){const Cr=this.tracker.getChanges();for(const kr of Cr){const Pr=await this.adapter.findElement(kr.elementId);if(!Pr.ok){log$w.warn("Could not find element to clear change:",Pr.error);continue}const Rr=Pr.value;try{kr.type==="style"?Rr.style[kr.property]="":Rr.textContent=kr.oldText}catch(Ir){log$w.warn("Failed to clear change:",Ir)}}return Ok(void 0)}async clearInlineStyles(){return this.clearInlineChanges()}destroy(){this.hmrUnsubscribe&&(this.hmrUnsubscribe(),this.hmrUnsubscribe=null)}}const DEBOUNCE_DELAY_MS=300;class ChangeTracker{constructor(){oc(this,"history",{current:new Map,past:[],future:[]});oc(this,"pendingChanges",new Map);oc(this,"currentBatchId",null);oc(this,"debounceTimer",null);oc(this,"onChangeCallbacks",[]);oc(this,"stateBeforePending",null);oc(this,"transactionDepth",0)}recordChange(Cr){this.pendingChanges.size===0&&(this.currentBatchId=v4(),this.stateBeforePending=new Map(this.history.current)),this.currentBatchId&&(Cr.batchId=this.currentBatchId);const kr=getElementIdentityKey(Cr.elementId),Pr=Cr.type==="style"?changeKey(kr,Cr.property):textChangeKey(kr),Rr=Array.from(this.history.current.entries()).find(([Fr])=>Fr===Pr||Fr.startsWith(`${Pr}:`));if(Rr){const Fr=Rr[1];Cr.type==="style"&&Fr.type==="style"?Cr.oldValue=Fr.oldValue:Cr.type==="text"&&Fr.type==="text"&&(Cr.oldText=Fr.oldText)}const Ir=changeKeyFromChange(Cr);this.history.current.set(Ir,Cr),this.pendingChanges.set(Ir,Cr),this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.commitPending()},DEBOUNCE_DELAY_MS),this.notifyChange()}flushPending(){this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.commitPending()}removeChange(Cr){const kr=this.history.current.get(Cr)??this.pendingChanges.get(Cr)??null,Pr=this.history.current.has(Cr),Rr=this.pendingChanges.has(Cr);return!Pr&&!Rr?null:(Pr&&this.history.current.delete(Cr),Rr&&this.pendingChanges.delete(Cr),kr&&this.stateBeforePending&&(this.stateBeforePending=this.removeChangeFromSnapshotById(this.stateBeforePending,kr.id)),Rr&&this.pendingChanges.size===0&&(this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.stateBeforePending=null,this.currentBatchId=null),Pr&&(this.history.future=[]),kr&&(this.history.past=this.history.past.map(Ir=>this.removeChangeFromSnapshotById(Ir,kr.id)).filter(Ir=>Ir.size>0)),this.notifyChange(),kr)}removeChangeById(Cr){const kr=Array.from(this.history.current.entries()).find(([,Rr])=>Rr.id===Cr);if(kr)return this.removeChange(kr[0]);const Pr=Array.from(this.pendingChanges.entries()).find(([,Rr])=>Rr.id===Cr);return Pr?this.removeChange(Pr[0]):null}removeChangeFromSnapshotById(Cr,kr){return new Map(Array.from(Cr.entries()).filter(([,Pr])=>Pr.id!==kr))}commitPending(){this.pendingChanges.size===0||!this.stateBeforePending||this.transactionDepth>0||(this.history.past.push(this.stateBeforePending),this.history.future=[],this.pendingChanges.clear(),this.stateBeforePending=null,this.currentBatchId=null,this.notifyChange())}undo(){if(this.pendingChanges.size>0&&this.commitPending(),this.history.past.length===0)return null;const Cr=new Map(this.history.current);this.history.future.push(Cr),this.history.current=this.history.past.pop(),this.notifyChange();const kr=[];for(const[Pr,Rr]of Cr)this.history.current.has(Pr)||kr.push(Rr);return kr}redo(){if(this.history.future.length===0)return null;const Cr=new Map(this.history.current);this.history.past.push(Cr),this.history.current=this.history.future.pop(),this.notifyChange();const kr=[];for(const[Pr,Rr]of this.history.current)Cr.has(Pr)||kr.push(Rr);return kr}getChanges(){return Array.from(this.history.current.values())}getStyleChanges(){return Array.from(this.history.current.values()).filter(Cr=>Cr.type==="style")}getTextChanges(){return Array.from(this.history.current.values()).filter(Cr=>Cr.type==="text")}getChangeCount(){return this.getUniqueBatchCount(this.history.current.values())}getStyleBatchCount(){return this.getUniqueBatchCount(Array.from(this.history.current.values()).filter(Cr=>Cr.type==="style"))}getTextBatchCount(){return this.getUniqueBatchCount(Array.from(this.history.current.values()).filter(Cr=>Cr.type==="text"))}getUniqueBatchCount(Cr){const kr=new Set;for(const Pr of Cr)Pr.batchId?kr.add(Pr.batchId):kr.add(Pr.id);return kr.size}canUndo(){return this.history.past.length>0||this.pendingChanges.size>0}canRedo(){return this.history.future.length>0}clear(){this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.history={current:new Map,past:[],future:[]},this.pendingChanges.clear(),this.stateBeforePending=null,this.currentBatchId=null,this.notifyChange()}getStyleChange(Cr,kr){return Array.from(this.history.current.values()).filter(Rr=>Rr.type==="style"&&matchesElementIdentity(Rr.elementId,Cr)&&Rr.property===kr).sort((Rr,Ir)=>Ir.timestamp-Rr.timestamp)[0]}getTextChange(Cr){return Array.from(this.history.current.values()).filter(Pr=>Pr.type==="text"&&matchesElementIdentity(Pr.elementId,Cr)).sort((Pr,Rr)=>Rr.timestamp-Pr.timestamp)[0]}hasChanges(Cr){return Array.from(this.history.current.values()).some(kr=>matchesElementIdentity(kr.elementId,Cr))}getChangesForElement(Cr){return Array.from(this.history.current.values()).filter(kr=>matchesElementIdentity(kr.elementId,Cr))}onChange(Cr){return this.onChangeCallbacks.push(Cr),()=>{const kr=this.onChangeCallbacks.indexOf(Cr);kr!==-1&&this.onChangeCallbacks.splice(kr,1)}}notifyChange(){this.onChangeCallbacks.forEach(Cr=>Cr())}export(){return{current:Array.from(this.history.current.entries()),past:this.history.past.map(Cr=>Array.from(Cr.entries())),future:this.history.future.map(Cr=>Array.from(Cr.entries()))}}import(Cr){this.history={current:new Map(Cr.current),past:Cr.past.map(kr=>new Map(kr)),future:Cr.future.map(kr=>new Map(kr))},this.notifyChange()}async transaction(Cr){const kr=this.pendingChanges.size===0;kr&&(this.currentBatchId=v4(),this.stateBeforePending=new Map(this.history.current)),this.transactionDepth++;try{await Cr()}catch(Pr){throw kr&&this.stateBeforePending&&(this.history.current=new Map(this.stateBeforePending),this.pendingChanges.clear(),this.currentBatchId=null,this.stateBeforePending=null),Pr}finally{this.transactionDepth--,kr&&this.transactionDepth===0&&this.flushPending()}}}const DEFAULT_SELECTED_MODEL_ID="claude-opus-4-6",FLAG_DEFINITIONS={resize:{default:!1},variants:{default:!1}},DEFAULT_FEATURE_FLAGS=Object.fromEntries(Object.entries(FLAG_DEFINITIONS).map(([$,Cr])=>[$,{isEnabled:Cr.default}])),selectedElementAtom=atom(null),chatMessagesAtom=atom([]),chatDraftAtom=atom(""),chatDraftImagesAtom=atom([]),modeAtom=atom("comment"),changeModeAtom=atom(null,($,Cr,kr)=>{Cr(modeAtom,kr),kr==="view"&&(Cr(selectedElementAtom,null),Cr(elementScreenshotAtom,null))}),panelOpenAtom=atom(!0),designChangeCountAtom=atom(0),iframeRefAtom=atom(null),displayAdapterAtom=atom(null),designTokensAtom=atom(null),textEditingStateAtom=atom({isEditing:!1,element:null,originalText:""}),isResizingAtom=atom(!1),globalChangeTrackerAtom=atom(new ChangeTracker),gitStatusAtom=atom(null),globalManipulationServiceAtom=atom(null),elementScreenshotAtom=atom(null),AVAILABLE_MODELS=[{id:"claude-sonnet-4-6",name:"Sonnet 4.6",description:"Fast and capable"},{id:"claude-opus-4-6",name:"Opus 4.6",description:"Most capable"},{id:"claude-haiku-4-5",name:"Haiku 4.5",description:"Fast and affordable"}],selectedModelAtom=atom(DEFAULT_SELECTED_MODEL_ID),commentsAtom=atom(new Map),editingCommentIdAtom=atom(null),activeCarouselCommentIdAtom=atom(null),featureFlagsAtom=atom(DEFAULT_FEATURE_FLAGS),agentModeAvailableAtom=atom(!1),isMCPSessionAtom=atom(!1),mcpEditorAtom=atom(null),isPublishingAtom=atom(!1),isCommentDraftDirtyAtom=atom(!1),isEyedropperActiveAtom=atom(!1),commentShakeAtom=atom(0),panelClickVersionAtom=atom(0),log$v=createLogger("StreamingUtils"),handleSSEStream=async($,Cr)=>{var xa;const{url:kr,method:Pr="POST",headers:Rr={},body:Ir,signal:Fr}=$,{onChunk:Lr,onProgress:qr,onComplete:fa,onError:pa,onCanceled:ga}=Cr;try{const ya=await fetch(kr,{method:Pr,headers:{"Content-Type":"application/json",...Rr},body:JSON.stringify(Ir),signal:Fr});if(!ya.ok){if(ya.status===401)throw new Error("Authentication required. Please run `rivet logout` and `rivet login` to re-authenticate.");if(ya.status===429){const Sa=await ya.json().catch(()=>({})),Ca=Sa.message||Sa.error||"";throw Ca.includes("SPEND_LIMIT_EXCEEDED:")?new Error(Ca):new Error(Ca||"Rate limit exceeded. Please try again shortly.")}throw new Error(`HTTP error! status: ${ya.status}`)}const ba=(xa=ya.body)==null?void 0:xa.getReader(),Aa=new TextDecoder;if(!ba)throw new Error("No response body reader available");let ka="",Ea="";for(;;){const{done:Sa,value:Ca}=await ba.read();if(Sa)break;ka+=Aa.decode(Ca,{stream:!0});const Ta=ka.split(`
|
|
71
71
|
`);ka=Ta.pop()||"";for(const Ia of Ta)if(Ia.trim()!==""){if(Ia.startsWith("event: ")){Ea=Ia.slice(7).trim();continue}if(Ia.startsWith("data: "))try{const Ra=JSON.parse(Ia.slice(6));if(Ea==="progress")qr("current",Ra.content||"");else if(Ra.content&&!Ra.done)Lr("current",Ra.content);else if(Ra.error){pa("current",Ra.details||Ra.error);break}else if(Ra.done){fa("current",Ra.usage,Ra);break}}catch(Ra){log$v.warn("Failed to parse SSE data:",Ra)}}}}catch(ya){if(ya instanceof DOMException&&ya.name==="AbortError"){log$v.info("Streaming request aborted by user"),ga==null||ga("current");return}log$v.warn("Streaming request failed:",ya);const ba=ya instanceof Error?ya.message:"An unexpected error occurred.";pa("unknown",ba)}},createStreamingMessageManager=$=>{const Cr=(pa,ga)=>{$(xa=>xa.map(ya=>ya.id===pa?{...ya,message:ya.message+ga}:ya))},kr=(pa,ga)=>{$(xa=>xa.map(ya=>ya.id===pa?{...ya,message:ga}:ya))},Pr=pa=>{$(ga=>ga.map(xa=>xa.id===pa?{...xa,isLoading:!1}:xa))},Rr=(pa,ga,xa)=>{$(ya=>ya.map(ba=>{if(ba.id!==pa)return ba;const Aa=(xa??ba.message).trim(),ka=Aa.length>0&&Aa!==ga.trim();return{...ba,message:ga,summary:ga,details:ka?Aa:void 0,isDetailsAvailable:ka,isLoading:!1}}))},Ir=(pa,ga)=>{$(xa=>xa.map(ya=>ya.id===pa?{...ya,message:`Error: ${ga}`,isLoading:!1}:ya))},Fr=(pa,ga,xa="",ya=!1,ba)=>{const Aa={id:pa,message:xa,isUser:ga,isLoading:!ga,isProgress:ya,images:ba};$(ka=>[...ka,Aa])};return{updateStreamingMessage:Cr,replaceStreamingMessage:kr,finalizeStreamingMessage:Pr,finalizeWithSummaryAndDetails:Rr,setErrorMessage:Ir,addStreamingMessage:Fr,addProgressMessage:(pa,ga="")=>{Fr(pa,!1,ga,!0)},updateOrAddProgressMessage:(pa,ga)=>{$(xa=>{const ya=xa.filter(Aa=>!Aa.isProgress),ba={id:pa,message:ga,isUser:!1,isLoading:!0,isProgress:!0};return[...ya,ba]})},removeProgressMessages:()=>{$(pa=>pa.filter(ga=>!ga.isProgress))}}},log$u=createLogger("useAgent"),useAgent=()=>{const[$,Cr]=reactExports.useState(!1),[kr,Pr]=reactExports.useState(null),[Rr,Ir]=reactExports.useState(""),Fr=useAtomValue(designTokensAtom),Lr=useAtomValue(selectedModelAtom),qr=reactExports.useRef(null),fa=reactExports.useCallback(()=>{qr.current&&(log$u.info("Cancelling agent modification"),qr.current.abort(),qr.current=null,Cr(!1))},[]);return{modifyWithAgent:reactExports.useCallback(async(ga,xa)=>{var ya;qr.current&&qr.current.abort(),qr.current=new AbortController,Cr(!0),Pr(null),Ir("");try{const{instruction:ba,elements:Aa,images:ka,sessionId:Ea,traceId:Sa,posthogSessionId:Ca}=ga;log$u.info("Starting agentic modification:",{instruction:ba.slice(0,50),elementCount:Aa.length,hasSessionId:!!Ea});const Ta={url:"/api/code/modify-agentic",body:{instruction:ba,elements:Aa,images:ka,designTokens:Fr||void 0,sessionId:Ea,model:Lr,traceId:Sa,posthogSessionId:Ca},signal:(ya=qr.current)==null?void 0:ya.signal};let Ia=null,Ra=null,ja=!1;if(await handleSSEStream(Ta,{onChunk:(Oa,La)=>{var Ha;Ir(Wa=>Wa+La),(Ha=xa==null?void 0:xa.onChunk)==null||Ha.call(xa,La)},onProgress:(Oa,La)=>{var Ha;log$u.debug("Agent progress:",La),(Ha=xa==null?void 0:xa.onProgress)==null||Ha.call(xa,La)},onComplete:(Oa,La,Ha)=>{var Ja,Ya,Za;Ia=Ha||{changes:"Agentic modification completed",filesModified:[],totalElements:Aa.length},log$u.info("Agentic modification complete:",{filesModified:((Ja=Ia.filesModified)==null?void 0:Ja.length)||0,sessionId:Ia.sessionId}),(Za=xa==null?void 0:xa.onComplete)==null||Za.call(xa,{usage:La,sessionId:Ia.sessionId,model:Ia.model,ttfmMs:Ia.ttfmMs,changes:Ia.changes,filesModified:((Ya=Ia.filesModified)==null?void 0:Ya.map(Qa=>Qa.filePath))??[]})},onError:(Oa,La)=>{var Ha;Ra=La,log$u.warn("Agentic modification error:",La),(Ha=xa==null?void 0:xa.onError)==null||Ha.call(xa,La)},onCanceled:()=>{var Oa;ja=!0,log$u.info("Agentic modification canceled"),(Oa=xa==null?void 0:xa.onCanceled)==null||Oa.call(xa)}}),ja)return null;if(Ra)throw new Error(Ra);return Ia}catch(ba){const Aa=ba instanceof Error?ba.message:"Agentic modification failed";return Pr(Aa),log$u.warn("Agentic modification error:",Aa),null}finally{Cr(!1)}},[Fr,Lr]),cancelModification:fa,isModifying:$,error:kr,streamingContent:Rr,clearError:()=>Pr(null),clearStreamingContent:()=>Ir("")}},toKebabProperty=$=>$.includes("-")?$:$.replace(/([A-Z])/g,"-$1").toLowerCase(),getSelectedVariant=$=>$.finalizedVariant?$.finalizedVariant:null,formatInlineStyles=$=>Object.entries($).map(([Cr,kr])=>`${toKebabProperty(Cr)}: ${kr}`).join("; "),mergeVariantInlineStylesWithDesignChanges=($,Cr)=>{const kr={};for(const[Pr,Rr]of Object.entries($))kr[toKebabProperty(Pr)]=Rr;for(const Pr of Cr)kr[toKebabProperty(String(Pr.property))]=Pr.newValue;return kr},formatMergedFinalStylesSection=($,Cr)=>{const kr=getSelectedVariant($);if(!kr){if(Cr.length===0)return"";const Ir={};for(const Lr of Cr)Ir[toKebabProperty(String(Lr.property))]=Lr.newValue;return`
|
|
72
72
|
**Design-panel style edits to implement:** ${formatInlineStyles(Ir)}`}const Pr=mergeVariantInlineStylesWithDesignChanges(kr.inlineStyles,Cr),Rr=formatInlineStyles(Pr);return`
|
|
73
73
|
**Selected design direction:** ${kr.label}
|
|
@@ -343,7 +343,7 @@ For more information, see https://radix-ui.com/primitives/docs/components/${Cr.d
|
|
|
343
343
|
background: transparent;
|
|
344
344
|
pointer-events: none;
|
|
345
345
|
display: none;
|
|
346
|
-
`,this.iframeRef.parentElement.appendChild(Cr)),Cr}removeMouseCaptureOverlay(){var kr;if(!((kr=this.iframeRef)!=null&&kr.parentElement))return;const Cr=this.iframeRef.parentElement.querySelector("#rivet-mouse-capture");Cr&&Cr.remove()}isOverlayInSidebar(Cr,kr,Pr,Rr){const Ir=document.querySelector('[data-cy="element-inspector"]');if(!Ir)return!1;const Fr=Ir.getBoundingClientRect(),Lr=Cr+Pr,qr=kr+Rr;return!(Lr<=Fr.left||Cr>=Fr.right||qr<=Fr.top||kr>=Fr.bottom)}getComputedStyles(){if(!this.currentElement||!this.iframeRef)return log$8.warn("Attempt to get computed styles failed: currentElement ",this.currentElement,"iFrameRef:",this.iframeRef),{};const Cr=this.iframeRef.contentWindow;if(!Cr)return log$8.warn("Attempt to get computed styles failed: iFrameWindow not defined"),{};const kr=Cr.getComputedStyle(this.currentElement),Pr={};for(let Rr=0;Rr<kr.length;Rr++){const Ir=kr[Rr];Pr[Ir]=kr.getPropertyValue(Ir)}return Pr.background=addSyntheticBackground(Pr),Pr}onStylesChanged(Cr){return this.onStylesChangedCallback=Cr,()=>{this.onStylesChangedCallback=null}}refreshStyles(){const Cr=this.getComputedStyles();this.notifyStylesChanged(Cr)}setCurrentElement(Cr){this.currentElement=Cr,Cr&&this.refreshStyles()}notifyStylesChanged(Cr){this.onStylesChangedCallback&&this.onStylesChangedCallback(Cr)}async applyStyle(Cr,kr,Pr){const Rr=await this.findElement(Cr);if(!Rr.ok)return Err(Rr.error);const Ir=Rr.value;Cr.rivetId&&this.injectRivetId(Ir,Cr.rivetId);try{return Ir.style[kr]=Pr,Ok(void 0)}catch(Fr){return Err(new StyleApplicationError(kr,Pr,Fr instanceof Error?Fr.message:String(Fr)))}}async getComputedStylesForElement(Cr){const kr=await this.findElement(Cr);if(!kr.ok)return Err(kr.error);const Pr=kr.value;if(!this.iframeRef)return Err(new ElementNotFoundError(Cr,"Iframe ref is null"));const Rr=this.iframeRef.contentWindow;if(!Rr)return Err(new ElementNotFoundError(Cr,"Iframe window is null"));try{const Ir=Rr.getComputedStyle(Pr),Fr={};for(let Lr=0;Lr<Ir.length;Lr++){const qr=Ir[Lr];Fr[qr]=Ir.getPropertyValue(qr)}return Fr.background=addSyntheticBackground(Fr),Ok(Fr)}catch(Ir){return Err(new ElementNotFoundError(Cr,Ir instanceof Error?Ir.message:String(Ir)))}}async findElement(Cr){if(!this.iframeRef)return Err(new ElementNotFoundError(Cr,"Iframe ref is null"));const kr=getIframeDocument(this.iframeRef);if(!kr)return Err(new ElementNotFoundError(Cr,"Cannot access iframe document"));if(Cr.rivetId){const Pr=kr.querySelector(`[data-rivet-id="${Cr.rivetId}"]`);if(Pr)return Ok(Pr)}if(Cr.xpath){const Pr=getElementByXPath(kr,Cr.xpath);if(Pr)return Ok(Pr)}if(Cr.cssSelector)try{const Pr=kr.querySelector(Cr.cssSelector);if(Pr)return Ok(Pr)}catch(Pr){log$8.warn("Invalid CSS selector:",Cr.cssSelector,Pr)}return Err(new ElementNotFoundError(Cr,"Element not found using any identifier strategy"))}injectRivetId(Cr,kr){Cr.setAttribute("data-rivet-id",kr)}createElementIdentifier(Cr){const kr=Cr.getAttribute("data-rivet-id"),Pr=getXPath(Cr);let Rr;if(Cr.id)Rr=`#${Cr.id}`;else if(Cr.className&&typeof Cr.className=="string"){const Ir=Cr.className.trim().split(/\s+/).join(".");Ir&&(Rr=`${Cr.tagName.toLowerCase()}.${Ir}`)}return{rivetId:kr||"",xpath:Pr,cssSelector:Rr}}onHMR(Cr){var Fr;this.hmrCallbacks.push(Cr);let kr=null,Pr=null;const Rr=()=>{Pr&&clearTimeout(Pr),Pr=setTimeout(()=>{this.handleIframeLoad()},1e3)};this.iframeRef&&this.hmrCallbacks.length===1&&this.iframeRef.addEventListener("load",this.handleIframeLoad);const Ir=this.iframeRef?getIframeDocument(this.iframeRef):null;if(Ir){kr=new MutationObserver(fa=>{fa.some(ga=>{var ya;const xa=ga.target;return!((ya=xa.closest)!=null&&ya.call(xa,'[id^="rivet-"]'))})&&Rr()});const Lr=Ir.body??Ir.documentElement??Ir,qr=((Fr=Ir.defaultView)==null?void 0:Fr.Node)??Node;if(Lr instanceof qr)try{kr.observe(Lr,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","src","href"],characterData:!0})}catch{}}return()=>{const Lr=this.hmrCallbacks.indexOf(Cr);Lr!==-1&&this.hmrCallbacks.splice(Lr,1),kr==null||kr.disconnect(),Pr&&clearTimeout(Pr),this.hmrCallbacks.length===0&&this.iframeRef&&this.iframeRef.removeEventListener("load",this.handleIframeLoad)}}forceReload(){return new Promise((Cr,kr)=>{var Lr;if(!((Lr=this.iframeRef)!=null&&Lr.contentWindow)){Cr();return}let Pr,Rr=!1;const Ir=()=>{var qr;Rr||(Rr=!0,clearTimeout(Pr),(qr=this.iframeRef)==null||qr.removeEventListener("load",Fr))},Fr=()=>{Ir(),Cr()};Pr=setTimeout(()=>{Ir(),kr(new Error("Iframe reload timeout after 10s"))},1e4),this.iframeRef.addEventListener("load",Fr);try{this.iframeRef.contentWindow.location.reload()}catch(qr){Ir(),kr(qr)}})}}class StaticIframeAdapter extends IframeDisplayAdapter{}const STATUS_CIRCLE_BG={pending:"bg-primary",complete:"bg-accent-success",error:"bg-accent-error"},BUBBLE_W=36,BUBBLE_H=28,CARET_SIZE=10,CARET_HALF=CARET_SIZE/2,TIP_X=BUBBLE_W/2,TOTAL_H=BUBBLE_H+CARET_HALF,POPOVER_OFFSET_Y$1=8,ABOVE_THRESHOLD_PCT=.65,PREVIEW_W=200,VIEWPORT_PAD$1=8,clampLeft=($,Cr)=>{const kr=$-Cr/2,Pr=window.innerWidth-Cr-VIEWPORT_PAD$1;return Math.max(VIEWPORT_PAD$1,Math.min(kr,Pr))},CommentMarker=({comment:$,index:Cr,position:kr,onEdit:Pr,onHover:Rr,onHoverEnd:Ir})=>{var ya;const[Fr,Lr]=reactExports.useState(!1),qr=reactExports.useCallback(ba=>{ba.stopPropagation(),Pr($.id)},[$.id,Pr]),fa=kr.y/window.innerHeight>ABOVE_THRESHOLD_PCT,pa=$.instruction,xa=clampLeft(kr.x,PREVIEW_W)-(kr.x-TIP_X);return jsxRuntimeExports.jsxs("div",{className:"fixed",style:{top:fa?kr.y:kr.y-TOTAL_H,left:kr.x-TIP_X,zIndex:Fr?55:36},onMouseEnter:()=>{Lr(!0),Rr==null||Rr()},onMouseLeave:()=>{Lr(!1),Ir==null||Ir()},children:[jsxRuntimeExports.jsxs("div",{className:"relative cursor-pointer",style:{filter:"drop-shadow(0 1px 3px rgba(0,0,0,0.2))"},onClick:qr,children:[jsxRuntimeExports.jsx("div",{className:"absolute bg-main",style:{width:CARET_SIZE,height:CARET_SIZE,left:(BUBBLE_W-CARET_SIZE)/2,top:fa?-CARET_HALF:BUBBLE_H-CARET_HALF,transform:"rotate(45deg)",borderRadius:3}}),jsxRuntimeExports.jsx("div",{className:"relative flex items-center justify-center rounded-lg bg-main",style:{width:BUBBLE_W,height:BUBBLE_H},children:jsxRuntimeExports.jsx("div",{className:`flex h-5 w-5 items-center justify-center rounded-full ${STATUS_CIRCLE_BG[$.status]}`,children:jsxRuntimeExports.jsx("span",{className:"text-[10px] font-bold leading-none text-white",children:Cr+1})})})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:Fr&&(pa||((ya=$.images)==null?void 0:ya.length))&&jsxRuntimeExports.jsxs(motion.div,{className:"absolute rounded-lg bg-main px-3 py-2 shadow-lg",style:{left:xa,top:fa?-POPOVER_OFFSET_Y$1:TOTAL_H+POPOVER_OFFSET_Y$1,transformOrigin:fa?"bottom center":"top center",width:PREVIEW_W},initial:{scale:.96,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.96,opacity:0,transition:{duration:.06,ease:[.55,0,1,.45]}},transition:{duration:.08,ease:[.165,.84,.44,1]},children:[pa?jsxRuntimeExports.jsx("p",{className:"line-clamp-2 text-left text-xs leading-snug text-content",children:pa}):null,$.images&&$.images.length>0?jsxRuntimeExports.jsx("div",{className:`flex flex-wrap justify-center gap-1 ${pa?"mt-1.5":""}`,children:$.images.map((ba,Aa)=>jsxRuntimeExports.jsx("img",{src:ba,alt:`Reference ${Aa+1}`,className:"max-h-10 rounded border border-divider"},Aa))}):null]})})]})},CommentMarkerLayer=({onEditComment:$})=>{const[Cr,kr]=useAtom(commentsAtom),Pr=useAtomValue(iframeRefAtom),[Rr,Ir]=reactExports.useState(null),[,Fr]=reactExports.useState(0),Lr=reactExports.useRef(null),qr=reactExports.useCallback(()=>Fr(Sa=>Sa+1),[]);reactExports.useEffect(()=>{const Sa=Pr==null?void 0:Pr.current;if(!Sa)return;let Ca=null;const Ta=()=>{const ja=getIframeDocument(Sa);!ja||ja===Ca||(Ca&&Ca.removeEventListener("scroll",qr,!0),Ca=ja,ja.addEventListener("scroll",qr,!0))},Ia=()=>{Ta(),qr()};Ta(),Sa.addEventListener("load",Ia),window.addEventListener("resize",qr);const Ra=new ResizeObserver(qr);return Ra.observe(Sa),Lr.current=()=>{Sa.removeEventListener("load",Ia),window.removeEventListener("resize",qr),Ra.disconnect(),Ca&&Ca.removeEventListener("scroll",qr,!0)},()=>{var ja;return(ja=Lr.current)==null?void 0:ja.call(Lr)}},[Pr,qr]);const fa=reactExports.useCallback(Sa=>{const Ca=Pr==null?void 0:Pr.current;Ca&&restoreCommentPreviewBaselines(Ca,Cr.values()),kr(Ta=>{const Ia=new Map(Ta);return Ia.delete(Sa),Ia})},[kr,Pr,Cr]),pa=Array.from(Cr.values());if(pa.length===0)return null;const ga=(Pr==null?void 0:Pr.current)??null,xa=ga?getIframeDocument(ga):null,ya=(ga==null?void 0:ga.getBoundingClientRect())??null,ba=(Sa,Ca,Ta)=>{if(!xa||!ya)return null;const Ia=resolveElementFromContext(xa,Sa);if(!Ia)return null;const Ra=Ia.getBoundingClientRect();return Ra.bottom<0||Ra.top>ya.height?null:{x:ya.left+Ra.left+Ca*Ra.width,y:ya.top+Ra.top+Ta*Ra.height}},Aa=Sa=>{if(!Sa.dragBox||!ya||!xa)return null;const Ca=resolveElementFromContext(xa,Sa.elementContext);if(!Ca)return null;const Ta=Ca.getBoundingClientRect(),{leftPct:Ia,topPct:Ra,widthPct:ja,heightPct:Oa}=Sa.dragBox;return{left:ya.left+Ta.left+Ia*Ta.width,top:ya.top+Ta.top+Ra*Ta.height,width:ja*Ta.width,height:Oa*Ta.height}},ka=Rr!=null?Cr.get(Rr):void 0,Ea=ka?Aa(ka):null;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[pa.map((Sa,Ca)=>{const Ta=ba(Sa.elementContext,Sa.pin.elementXPct,Sa.pin.elementYPct);return Ta?jsxRuntimeExports.jsx(CommentMarker,{comment:Sa,index:Ca,position:Ta,onDismiss:fa,onEdit:$,onHover:()=>Ir(Sa.id),onHoverEnd:()=>Ir(null)},Sa.id):null}),Ea&&jsxRuntimeExports.jsx("div",{"data-comment-hover-overlay":"true",style:{position:"fixed",pointerEvents:"none",zIndex:45,border:"1px dashed var(--color-primary, #FF3300)",background:"rgba(255, 51, 0, 0.08)",borderRadius:2,boxSizing:"border-box",left:Ea.left,top:Ea.top,width:Ea.width,height:Ea.height}})]})},intersectWithIframeViewport=($,Cr,kr)=>{const Pr=Math.max(0,$.left),Rr=Math.max(0,$.top),Ir=Math.min(Cr,$.right),Fr=Math.min(kr,$.bottom),Lr=Ir-Pr,qr=Fr-Rr;return Lr<=0||qr<=0?null:{left:Pr,top:Rr,right:Ir,bottom:Fr,width:Lr,height:qr}},BAR_HEIGHT=36,BAR_GAP=8,BAR_WIDTH=220,CONTROL_MARGIN=8,ORIGINAL_VARIANT_LABEL="Original",SPARKLE_FRAMES=["⡡⠊⢔⠡","⠊⡰⡡⡘","⢔⢅⠈⢢","⡁⢂⠆⡍","⢔⠨⢑⢐","⠨⡑⡠⠊"],SPARKLE_INTERVAL=150,clampToViewport=($,Cr,kr)=>Cr>kr?Cr:Math.min(Math.max($,Cr),kr),resolveOverlayPosition=($,Cr,kr)=>{const Pr=Cr.top+$.top,Rr=Cr.left+$.left+$.width/2,Ir=window.innerWidth-kr-CONTROL_MARGIN,Fr=clampToViewport(Rr-kr/2,CONTROL_MARGIN,Ir),Lr=window.innerHeight-BAR_HEIGHT-CONTROL_MARGIN;return{top:clampToViewport(Pr-BAR_HEIGHT-BAR_GAP,CONTROL_MARGIN,Lr),left:Fr}},CommentCarouselLayer=()=>{const $=usePostHog(),[Cr,kr]=useAtom(commentsAtom),Pr=useAtomValue(globalChangeTrackerAtom),Rr=useAtomValue(iframeRefAtom),Ir=useAtomValue(activeCarouselCommentIdAtom),Fr=useSetAtom(activeCarouselCommentIdAtom),Lr=useAtomValue(editingCommentIdAtom),[qr,fa]=reactExports.useState(0),[pa,ga]=reactExports.useState(null),xa=reactExports.useRef(null),ya=reactExports.useRef(!1),[ba,Aa]=reactExports.useState(0),ka=reactExports.useRef(Cr);ka.current=Cr;const[Ea,Sa]=reactExports.useState(0),Ca=reactExports.useRef(new Map),Ta=reactExports.useCallback(()=>{ya.current||(ya.current=!0,requestAnimationFrame(()=>{ya.current=!1,fa(rl=>rl+1)}))},[]),Ia=reactExports.useCallback(rl=>{ga(rl),xa.current!==null&&window.clearTimeout(xa.current),xa.current=window.setTimeout(()=>{ga(null)},160)},[]),Ra=reactExports.useCallback((rl,xl)=>{kr(El=>{const Cl=El.get(rl);if(!(Cl!=null&&Cl.styleVariants)||Cl.styleVariants.length===0)return El;const Ml=Cl.styleVariants.length+1,hl=Math.min(Math.max(Cl.selectedVariantIndex??0,0),Ml-1),yl=((hl+xl)%Ml+Ml)%Ml;if(yl===hl)return El;$==null||$.capture("comment_carousel_navigate",{variant_index:yl,variant_count:Cl.styleVariants.length});const Tl=new Map(El);return Tl.set(rl,{...Cl,selectedVariantIndex:yl,finalizedVariant:void 0}),Tl}),Ia(rl)},[$,Ia,kr]),ja=reactExports.useCallback(rl=>{const xl=ka.current.get(rl);if(!(xl!=null&&xl.styleVariants)||xl.styleVariants.length===0)return;const El=xl.styleVariants.length+1,Cl=Math.min(Math.max(xl.selectedVariantIndex??0,0),El-1);$==null||$.capture("comment_variant_apply_clicked",{variant_index:Cl,variant_count:xl.styleVariants.length});const Ml=Cl===0?void 0:xl.styleVariants[Cl-1];kr(hl=>{const yl=hl.get(rl);if(!yl)return hl;const Tl=new Map(hl);return Tl.set(rl,{...yl,finalizedVariant:Ml,styleVariants:void 0,selectedVariantIndex:void 0,variantGenerationStatus:void 0,variantGenerationError:void 0}),Tl}),Fr(null)},[$,kr]);reactExports.useEffect(()=>{const rl=Rr==null?void 0:Rr.current;if(!rl)return;let xl=null;const El=()=>{const Ml=getIframeDocument(rl);!Ml||Ml===xl||(xl&&xl.removeEventListener("scroll",Ta,!0),xl=Ml,Ml.addEventListener("scroll",Ta,!0))},Cl=()=>{El(),Ta()};return El(),rl.addEventListener("load",Cl),window.addEventListener("resize",Ta),()=>{rl.removeEventListener("load",Cl),window.removeEventListener("resize",Ta),xl&&xl.removeEventListener("scroll",Ta,!0)}},[Rr,Ta]),reactExports.useEffect(()=>Pr.onChange(()=>Aa(xl=>xl+1)),[Pr]),reactExports.useEffect(()=>{var hl;const rl=Rr==null?void 0:Rr.current,xl=rl?getIframeDocument(rl):null;if(!xl)return;const El=Pr.getStyleChanges(),Cl=new Map;for(const yl of El){const Tl=yl.elementId.xpath,jl=Cl.get(Tl);if(jl){jl.push(yl);continue}Cl.set(Tl,[yl])}const Ml=[];for(const yl of Cr.values()){const Tl=yl.styleVariants;if(!Tl||Tl.length===0)continue;const jl=getStylableElementFromContext(xl,yl.elementContext);if(!jl)continue;let Dl=yl.previewBaselineStyle;if(Dl===void 0){Dl=jl.getAttribute("style")??"";const vl=xl.defaultView,Pl=jl.getBoundingClientRect();Ca.current.set(yl.id,{pageLeft:((vl==null?void 0:vl.scrollX)??0)+Pl.left,pageTop:((vl==null?void 0:vl.scrollY)??0)+Pl.top,width:Pl.width,height:Pl.height}),Ml.push({id:yl.id,baseline:Dl})}jl.setAttribute("style",Dl);const Bl=Tl.length+1,$l=Math.min(Math.max(yl.selectedVariantIndex??0,0),Bl-1);if($l>0){const vl=((hl=Tl[$l-1])==null?void 0:hl.inlineStyles)??{};for(const[Pl,Hl]of Object.entries(vl))jl.style.setProperty(toKebabProperty(Pl),Hl)}const fl=Cl.get(yl.elementContext.xpath)??[];for(const vl of fl)jl.style.setProperty(toKebabProperty(String(vl.property)),vl.newValue)}Ml.length>0&&kr(yl=>{let Tl=null;for(const{id:jl,baseline:Dl}of Ml){const Bl=yl.get(jl);!Bl||Bl.previewBaselineStyle!==void 0||(Tl||(Tl=new Map(yl)),Tl.set(jl,{...Bl,previewBaselineStyle:Dl}))}return Tl??yl})},[Cr,Rr,kr,Pr,ba]),reactExports.useEffect(()=>{if(!Ir)return;const rl=xl=>{var hl;if(xl.key!=="ArrowLeft"&&xl.key!=="ArrowRight"&&xl.key!=="Enter")return;const El=(hl=xl.target)==null?void 0:hl.tagName;if(El==="INPUT"||El==="TEXTAREA"||El==="SELECT")return;const Cl=ka.current.get(Ir);if(!(Cl!=null&&Cl.styleVariants)||Cl.styleVariants.length===0)return;if(xl.preventDefault(),xl.key==="Enter"){ja(Ir);return}const Ml=xl.key==="ArrowLeft"?-1:1;Ra(Ir,Ml)};return window.addEventListener("keydown",rl,{capture:!0}),()=>window.removeEventListener("keydown",rl,{capture:!0})},[Ir,Ra,ja]),reactExports.useEffect(()=>{const rl=Ir?ka.current.get(Ir):void 0;if(!((rl==null?void 0:rl.variantGenerationStatus)==="generating"&&(!rl.styleVariants||rl.styleVariants.length===0)))return;const El=window.setInterval(()=>{Sa(Cl=>(Cl+1)%SPARKLE_FRAMES.length)},SPARKLE_INTERVAL);return()=>window.clearInterval(El)}),reactExports.useEffect(()=>()=>{xa.current!==null&&window.clearTimeout(xa.current)},[]);const Oa=Ir?Cr.get(Ir):void 0;if(!Oa)return null;const La=(Rr==null?void 0:Rr.current)??null;if(!La)return null;const Ha=La.getBoundingClientRect(),Wa=getIframeDocument(La);if(!Wa)return null;const Ja=getStylableElementFromContext(Wa,Oa.elementContext);if(!Ja)return null;const Ya=Ja.getBoundingClientRect(),Za=intersectWithIframeViewport(Ya,La.clientWidth,La.clientHeight);if(!Za)return null;const Qa=Oa.variantGenerationStatus==="generating"&&(!Oa.styleVariants||Oa.styleVariants.length===0),Na=Ca.current.get(Oa.id),Ka=Wa.defaultView,Fa=(Ka==null?void 0:Ka.scrollX)??0,Va=(Ka==null?void 0:Ka.scrollY)??0,Da=Na?{left:Na.pageLeft-Fa,top:Na.pageTop-Va,width:Na.width,height:Na.height}:Za,{dragBox:Ba}=Oa;let Ga,Ua,qa,$a;if(Ba)Ga=Ha.left+Ya.left+Ba.leftPct*Ya.width,Ua=Ha.top+Ya.top+Ba.topPct*Ya.height,qa=Ba.widthPct*Ya.width,$a=Ba.heightPct*Ya.height;else{const rl=Qa?Za:Da;Ga=Ha.left+rl.left,Ua=Ha.top+rl.top,qa=rl.width,$a=rl.height}if(Qa)return jsxRuntimeExports.jsx("div",{className:"pointer-events-none fixed z-[48]",style:{left:Ga,top:Ua,width:qa,height:$a,border:"1px dashed var(--color-primary-border, #ff6b35)",background:"rgba(255, 107, 53, 0.06)",borderRadius:2,boxSizing:"border-box"},children:jsxRuntimeExports.jsx("div",{className:"absolute left-0 top-0",style:{transform:"translateY(-100%)"},children:jsxRuntimeExports.jsx("span",{className:"font-mono text-sm leading-none text-primary",children:SPARKLE_FRAMES[Ea]})})});const tl=Oa.styleVariants;if(!tl||tl.length===0)return null;const ll=tl.length+1,ol=Math.min(Math.max(Oa.selectedVariantIndex??0,0),ll-1),_a=ol===0?ORIGINAL_VARIANT_LABEL:tl[ol-1].label,{top:nl,left:il}=resolveOverlayPosition(Da,Ha,BAR_WIDTH),ul=pa===Oa.id,sl=Oa.id;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Lr!==sl?jsxRuntimeExports.jsx("div",{className:"pointer-events-none fixed z-[47]",style:{left:Ga,top:Ua,width:qa,height:$a,border:"1px dashed var(--color-primary-border, #ff6b35)",background:"rgba(255, 107, 53, 0.08)",borderRadius:2,boxSizing:"border-box"}}):null,jsxRuntimeExports.jsxs(motion.div,{"data-rivet-carousel-pill":!0,className:"pointer-events-none fixed z-[48] flex items-center gap-1 rounded-lg border border-primary-border bg-main px-1 py-1 shadow-lg",style:{top:nl,left:il,width:BAR_WIDTH},initial:{opacity:0,y:-6},animate:{opacity:1,y:0,scale:ul?.985:1},transition:{duration:.16},onClick:rl=>rl.stopPropagation(),onKeyDown:rl=>{if(rl.key==="ArrowLeft"){rl.preventDefault(),Ra(sl,-1);return}if(rl.key==="ArrowRight"){rl.preventDefault(),Ra(sl,1);return}(rl.key==="Enter"||rl.key===" ")&&(rl.preventDefault(),ja(sl))},children:[jsxRuntimeExports.jsx("button",{type:"button",className:"pointer-events-auto flex h-6 w-6 shrink-0 items-center justify-center rounded text-content-muted hover:text-content disabled:opacity-50","aria-label":"Previous variation",onClick:rl=>{rl.stopPropagation(),Ra(sl,-1)},disabled:ul,children:jsxRuntimeExports.jsx(s$9,{className:"h-3.5 w-3.5",weight:"bold"})}),jsxRuntimeExports.jsx("div",{className:"min-w-0 flex-1 overflow-hidden",children:jsxRuntimeExports.jsx(AnimatePresence,{mode:"wait",initial:!1,children:jsxRuntimeExports.jsx(motion.span,{className:"block min-w-0 truncate text-xs font-medium text-content",initial:{opacity:0,y:4},animate:{opacity:ul?.7:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.14},children:_a},`overlay-variant-label-${sl}-${ol}`)})}),jsxRuntimeExports.jsx("button",{type:"button",className:"pointer-events-auto flex h-6 w-6 shrink-0 items-center justify-center rounded text-content-muted hover:text-content","aria-label":"Apply this variant",onClick:rl=>{rl.stopPropagation(),ja(sl)},children:jsxRuntimeExports.jsx(n$7,{className:"h-3.5 w-3.5",weight:"bold"})}),jsxRuntimeExports.jsx("button",{type:"button",className:"pointer-events-auto flex h-6 w-6 shrink-0 items-center justify-center rounded text-content-muted hover:text-content disabled:opacity-50","aria-label":"Next variation",onClick:rl=>{rl.stopPropagation(),Ra(sl,1)},disabled:ul,children:jsxRuntimeExports.jsx(s$8,{className:"h-3.5 w-3.5",weight:"bold"})})]})]})},MIN_VARIANT_COUNT=2,MAX_VARIANT_COUNT=5,clampVariantCount=$=>Math.min(Math.max($,MIN_VARIANT_COUNT),MAX_VARIANT_COUNT),useCommentVariantGeneration=()=>{const $=useSetAtom(commentsAtom),Cr=usePostHog();return{generateVariantsForComment:reactExports.useCallback(async({commentId:Pr,instruction:Rr,elementContext:Ir,requestedVariantCount:Fr})=>{const Lr=clampVariantCount(Fr);$(qr=>{const fa=qr.get(Pr);if(!fa)return qr;const pa=new Map(qr);return pa.set(Pr,{...fa,variantGenerationStatus:"generating",variantGenerationError:void 0,requestedVariantCount:Lr,styleVariants:void 0,selectedVariantIndex:void 0,finalizedVariant:void 0}),pa}),Cr==null||Cr.capture("comment_variations_generate_started",{instruction_length:Rr.length,variant_count:Lr});try{const qr=await fetch("/api/design/comment-variations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({instruction:Rr,variantCount:Lr,element:Ir})}),fa=await qr.json().catch(()=>({}));if(!qr.ok)throw new Error(typeof fa.error=="string"?fa.error:"Could not generate variations");const pa=fa.variants;if(!Array.isArray(pa)||pa.length!==Lr)throw new Error("Invalid variation response");const ga=pa;$(xa=>{const ya=xa.get(Pr);if(!ya)return xa;const ba=0,Aa=ga.length+1,ka=typeof ya.selectedVariantIndex=="number"?Math.min(Math.max(ya.selectedVariantIndex,0),Aa-1):ba,Ea=new Map(xa);return Ea.set(Pr,{...ya,styleVariants:ga,selectedVariantIndex:ka,variantGenerationStatus:"idle",variantGenerationError:void 0,requestedVariantCount:Lr,finalizedVariant:void 0}),Ea}),Cr==null||Cr.capture("comment_variations_generate_completed",{variant_count:ga.length})}catch(qr){const fa=qr instanceof Error?qr.message:"Could not generate variations";$(pa=>{const ga=pa.get(Pr);if(!ga)return pa;const xa=new Map(pa);return xa.set(Pr,{...ga,variantGenerationStatus:void 0,variantGenerationError:void 0,requestedVariantCount:void 0,styleVariants:void 0,selectedVariantIndex:void 0,finalizedVariant:void 0}),xa}),Cr==null||Cr.capture("comment_variations_generate_failed",{error_message:fa})}},[Cr,$])}},POPOVER_OFFSET_Y=8,POPOVER_W=320,VIEWPORT_PAD=8,DEFAULT_VARIANT_COUNT=3,IFRAME_ABOVE_THRESHOLD_PCT=.65,CommentPopover=({elementContext:$,pin:Cr,dragBox:kr,position:Pr,onClose:Rr,existingCommentId:Ir,isMCPSession:Fr=!1,onInputChange:Lr,shake:qr})=>{var ol;const fa=usePostHog(),pa=useAnimationControls(),[ga,xa]=useAtom(commentsAtom),ya=useAtomValue(iframeRefAtom),Aa=useAtomValue(featureFlagsAtom).variants.isEnabled,ka=useSetAtom(activeCarouselCommentIdAtom),{generateVariantsForComment:Ea}=useCommentVariantGeneration(),Sa=Ir?ga.get(Ir):void 0,Ca=(Sa==null?void 0:Sa.instruction)??"",[Ta,Ia]=reactExports.useState(Ca),[Ra,ja]=reactExports.useState((Sa==null?void 0:Sa.images)??[]),Oa=reactExports.useRef(null),La=reactExports.useRef(null);reactExports.useEffect(()=>{const _a=setTimeout(()=>{const nl=Oa.current;nl&&(nl.focus(),nl.selectionStart=nl.selectionEnd=nl.value.length)},150);return()=>clearTimeout(_a)},[]);const Ha=reactExports.useRef(qr);reactExports.useEffect(()=>{qr!==Ha.current&&pa.start({x:[0,-5,5,-4,4,-2,2,0],y:[0,1.5,-1.5,1,-1,.5,-.5,0],transition:{duration:.45,ease:"easeInOut"}})},[qr,pa]);const Wa=Ta.trim()!==Ca.trim()&&Ta.trim()!==""||Ra.length!==(((ol=Sa==null?void 0:Sa.images)==null?void 0:ol.length)??0),Ja=Ir?Wa:Ta.trim()!=="",Ya=reactExports.useCallback(_a=>{Rr(_a)},[Rr]),Za=reactExports.useCallback(_a=>{_a.style.height="auto",_a.style.height=`${_a.scrollHeight}px`},[]),Qa=reactExports.useCallback(_a=>{compressImage(_a).then(nl=>{ja(il=>[...il,nl])}).catch(()=>{console.warn("[CommentPopover] Failed to process image:",_a.name)})},[]),Na=reactExports.useCallback(_a=>{ja(nl=>[...nl,_a]),Lr==null||Lr(!0)},[Lr]),{isDragOver:Ka,dropHandlers:Fa}=useImageDrop(Na),Va=_a=>{const nl=_a.target.files;if(!nl)return;let il=!1;for(const ul of Array.from(nl))ul.type.startsWith("image/")&&(Qa(ul),il=!0);La.current&&(La.current.value=""),il&&(Lr==null||Lr(!0))},Da=_a=>{var il;const nl=(il=_a.clipboardData)==null?void 0:il.items;if(nl){for(const ul of Array.from(nl))if(ul.type.startsWith("image/")){_a.preventDefault();const sl=ul.getAsFile();sl&&(Qa(sl),Lr==null||Lr(!0))}}},Ba=_a=>{const nl=Ra.filter((il,ul)=>ul!==_a);ja(nl),Lr==null||Lr(Ta.trim()!==""||nl.length>0)},Ga=reactExports.useCallback(_a=>{const nl=Ta.trim();if(!nl)return;const il=(_a==null?void 0:_a.forceGenerateVariants)===!0&&!Fr,ul=il?{styleVariants:void 0,selectedVariantIndex:void 0,finalizedVariant:void 0,variantGenerationStatus:"generating",variantGenerationError:void 0,requestedVariantCount:DEFAULT_VARIANT_COUNT}:{};let sl;if(Ir)sl=Ir,xa(rl=>{const xl=rl.get(Ir);if(!xl)return rl;const El=new Map(rl);return El.set(Ir,{...xl,instruction:nl,images:Ra.length>0?Ra:void 0,...ul}),El}),fa==null||fa.capture("comment_edited",{instruction_length:nl.length,image_count:Ra.length,has_variants:il});else{const rl=crypto.randomUUID();sl=rl;const xl={id:rl,elementContext:$,pin:Cr,dragBox:kr,instruction:nl,images:Ra.length>0?Ra:void 0,...ul,status:"pending"};xa(El=>{const Cl=new Map(El);return Cl.set(rl,xl),Cl}),fa==null||fa.capture("comment_added",{instruction_length:nl.length,image_count:Ra.length,has_variants:il})}Ya({preserveSelection:!0}),il&&(ka(sl),Ea({commentId:sl,instruction:nl,elementContext:$,requestedVariantCount:DEFAULT_VARIANT_COUNT}))},[Ta,Ra,Ir,$,Cr,kr,xa,fa,Fr,Ea,Ya,ka]),Ua=reactExports.useCallback(()=>{if(Ir){const _a=(ya==null?void 0:ya.current)??null;_a&&restoreCommentPreviewBaselines(_a,ga.values()),xa(nl=>{const il=new Map(nl);return il.delete(Ir),il}),fa==null||fa.capture("comment_deleted")}Ya()},[Ir,ga,ya,xa,Ya,fa]),qa=reactExports.useCallback(_a=>{_a.key==="Enter"&&(_a.metaKey||_a.ctrlKey)&&(_a.preventDefault(),_a.nativeEvent.stopImmediatePropagation(),Ga()),_a.key==="Escape"&&(_a.nativeEvent.stopImmediatePropagation(),Ya({preserveSelection:!0}))},[Ga,Ya]),$a=window.innerHeight,tl=Pr.y/$a>IFRAME_ABOVE_THRESHOLD_PCT,ll=Ir?"Save":"Add";return jsxRuntimeExports.jsx("div",{className:"absolute z-comment-preview cursor-auto",style:{top:tl?Pr.y-POPOVER_OFFSET_Y:Pr.y+POPOVER_OFFSET_Y,left:Math.max(VIEWPORT_PAD,Math.min(Pr.x-POPOVER_W/2,window.innerWidth-POPOVER_W-VIEWPORT_PAD)),transform:tl?"translateY(-100%)":void 0},onClick:_a=>_a.stopPropagation(),children:jsxRuntimeExports.jsx(motion.div,{animate:pa,children:jsxRuntimeExports.jsxs(motion.div,{className:"relative flex w-80 flex-col gap-2 rounded-xl bg-main p-4 shadow-2xl",style:{transformOrigin:"center 24px"},initial:{scale:.82,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.82,opacity:0,transition:{duration:.1,ease:[.55,0,1,.45]}},transition:{type:"spring",stiffness:500,damping:28,mass:.8},...Fa,children:[Ka?jsxRuntimeExports.jsx("div",{className:"pointer-events-none absolute inset-0 z-10 flex items-center justify-center rounded-xl border-2 border-dashed border-primary bg-primary/10",children:jsxRuntimeExports.jsx("span",{className:"text-sm font-medium text-content",children:"Drop image here"})}):null,jsxRuntimeExports.jsx("textarea",{ref:_a=>{Oa.current=_a,_a&&Za(_a)},value:Ta,onChange:_a=>{const nl=_a.target.value;Ia(_a.target.value),Za(_a.target),Lr==null||Lr(nl.trim()!==""||Ra.length>0)},onKeyDown:qa,onPaste:Da,placeholder:"What should change?",rows:3,style:{maxHeight:"9rem",overflowY:"auto"},className:"w-full resize-none rounded-lg border border-divider bg-main-light p-3 text-sm text-content outline-none transition-colors duration-100 placeholder:text-content-subtle focus:border-primary focus:ring-1 focus:ring-primary/30"}),Ra.length>0?jsxRuntimeExports.jsx("div",{className:"max-h-40 overflow-y-auto rounded",children:jsxRuntimeExports.jsx("div",{className:`grid gap-1.5 ${Ra.length===1?"grid-cols-1":"grid-cols-2"}`,children:Ra.map((_a,nl)=>jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx("img",{src:_a,alt:`Reference ${nl+1}`,className:`w-full rounded border border-divider object-cover ${Ra.length===1?"max-h-32":"aspect-[4/3]"}`}),jsxRuntimeExports.jsx("button",{onClick:()=>Ba(nl),className:"absolute right-1 top-1 rounded-full bg-red-500/80 p-0.5 text-white backdrop-blur-sm hover:bg-red-600",children:jsxRuntimeExports.jsx(n$1,{className:"h-2.5 w-2.5",weight:"bold"})})]},nl))})}):null,jsxRuntimeExports.jsx("input",{ref:La,type:"file",accept:"image/*",multiple:!0,onChange:Va,className:"hidden"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[Ir?jsxRuntimeExports.jsx("button",{type:"button",onClick:Ua,className:"p-1 text-content-subtle transition-colors hover:text-accent-error",title:"Delete comment",children:jsxRuntimeExports.jsx(n$2,{className:"h-4 w-4",weight:"bold"})}):null,jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>{var _a;return(_a=La.current)==null?void 0:_a.click()},className:"p-1 text-content-subtle transition-colors hover:text-content",title:"Attach reference image",children:jsxRuntimeExports.jsx(I,{className:"h-4 w-4",weight:"bold"})})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>Ya(),className:"px-2 py-1.5 text-sm text-content-muted transition-colors hover:text-content",children:"Cancel"}),jsxRuntimeExports.jsx("button",{onClick:()=>Ga(),disabled:!Ja,className:"rounded-full bg-primary px-5 py-1.5 text-sm font-medium text-white transition-colors hover:bg-primary-hover disabled:opacity-50",children:ll}),!Fr&&Aa?jsxRuntimeExports.jsx("button",{type:"button","aria-label":"Generate 3 variants",onClick:()=>Ga({forceGenerateVariants:!0}),disabled:!Ja,className:"flex items-center justify-center rounded-full bg-primary px-3 py-1.5 text-sm font-medium text-white transition-colors hover:bg-primary-hover disabled:opacity-50",title:"Generate 3 variants",children:jsxRuntimeExports.jsx(s$1,{className:"h-5 w-5",weight:"bold"})}):null]})]})]})})})},log$7=createLogger("usePreviewUpstreamHealth"),DEFAULT_PROBE_MS_WHILE_DOWN=500,DEFAULT_PROBE_MS_WHILE_UP=4e3,DEFAULT_FIRST_UNREACHABLE_AFTER_MS=15e3,usePreviewUpstreamHealth=($,Cr={})=>{const kr=Cr.probeMsWhileDown??DEFAULT_PROBE_MS_WHILE_DOWN,Pr=Cr.probeMsWhileUp??DEFAULT_PROBE_MS_WHILE_UP,Rr=Cr.firstUnreachableCaptureAfterMs??DEFAULT_FIRST_UNREACHABLE_AFTER_MS,[Ir,Fr]=reactExports.useState($==="static"),[Lr,qr]=reactExports.useState(0),[fa,pa]=reactExports.useState(null),[ga,xa]=reactExports.useState(0),[ya,ba]=reactExports.useState(!1),[Aa,ka]=reactExports.useState(!1),[Ea,Sa]=reactExports.useState($==="static"?null:"upstream_unreachable");return reactExports.useEffect(()=>{if($==="static"){Fr(!0),pa(null),xa(0),ba(!1),ka(!0),Sa(null);return}let Ca=!0;const Ta=Date.now();pa(Ta),xa(0),ba(!1),Fr(!1),ka(!1),Sa("upstream_unreachable");const Ia={current:!1},Ra={current:!1},ja={current:!1},Oa={current:null},La={current:!1};let Ha=null;const Wa=()=>{ja.current||(ja.current=!0,Ca&&ka(!0))},Ja=()=>{Ha!==null&&(clearTimeout(Ha),Ha=null)},Ya=(Qa,Na)=>{Ja(),Ha=setTimeout(Na,Qa)},Za=async()=>{if(!Ca)return;xa(Va=>Va+1);let Qa=!1,Na="upstream_unreachable";try{Qa=(await fetch("/")).status!==502,Qa||(Na="upstream_unreachable")}catch{Na="rivet_unreachable"}if(!Ca)return;if(Wa(),Qa){const Va=!La.current;La.current=!0,Fr(!0),Sa(null),Oa.current=null,Ra.current=!1,ba(!1),Ia.current?Va&&(va==null||va.capture("preview_upstream_restored",{framework:$})):(Ia.current=!0,va==null||va.capture("preview_dev_server_ready",{framework:$,ready_after_ms:Date.now()-Ta})),Ya(Pr,Za);return}const Ka=La.current;La.current=!1,Fr(!1),Sa(Na),Oa.current===null&&(Oa.current=Date.now(),Ra.current=!1,ba(!1)),Ka&&(va==null||va.capture("preview_upstream_lost",{framework:$}),qr(Va=>Va+1),log$7.warn("Preview upstream became unavailable after it was ready"));const Fa=Date.now()-Oa.current;Fa>=Rr&&!Ra.current&&(Ra.current=!0,ba(!0),va==null||va.capture("preview_dev_server_unreachable",{framework:$,elapsed_ms:Fa}),log$7.warn("Dev server did not become ready within timeout window")),Ya(kr,Za)};return Ya(0,Za),()=>{Ca=!1,Ja()}},[$,kr,Pr,Rr]),{isUpstreamReady:Ir,iframeRemountKey:Lr,probeStartedAt:fa,probeAttemptCount:ga,isFirstUnreachableWindowExceeded:ya,initialProbeComplete:Aa,unavailableReason:Ea}},log$6=createLogger("IframePreview"),IframePreview=({isLoading:$=!1,isInteractionDisabled:Cr=!1,framework:kr,userPort:Pr,activeDemoSessionId:Rr=null,holdPreviewNavigation:Ir=!1})=>{const Fr=useSetAtom(iframeRefAtom),Lr=useSetAtom(displayAdapterAtom),qr=useAtomValue(modeAtom),fa=useSetAtom(changeModeAtom),pa=useAtomValue(commentsAtom),ga=useSetAtom(editingCommentIdAtom),xa=useSetAtom(activeCarouselCommentIdAtom),ya=useAtomValue(isMCPSessionAtom),ba=useSetAtom(isCommentDraftDirtyAtom),Aa=useAtomValue(isEyedropperActiveAtom),ka=useAtomValue(commentShakeAtom),Ea=useAtomValue(panelClickVersionAtom),[Sa,Ca]=reactExports.useState(null),Ta=useAtomValue(textEditingStateAtom),{isUpstreamReady:Ia,iframeRemountKey:Ra,initialProbeComplete:ja}=usePreviewUpstreamHealth(kr),Oa=Rr?`/try/${encodeURIComponent(Rr)}`:"",La=kr==="static"?`${Oa}/static/`:`${Oa}/`,Ha=Ir||!Ia?"about:blank":La,Wa=reactExports.useRef(null),{enterEditMode:Ja}=useInlineTextEdit({iframeRef:Wa}),Ya=useAtomValue(featureFlagsAtom);useElementResize({iframeRef:Wa,enabled:Ya.resize.isEnabled});const[Za,Qa]=reactExports.useState(null),Na=reactExports.useRef(!1),[Ka,Fa]=reactExports.useState(0),Va=reactExports.useCallback(sl=>{Na.current=sl,ba(sl)},[ba]),Da=reactExports.useCallback((sl,rl,xl)=>{if(Na.current){Fa(El=>El+1);return}Va(!1),Fa(0),ga(null),xa(null),Qa({key:crypto.randomUUID(),elementContext:sl,pin:rl,dragBox:xl})},[Va,ga,xa]),Ba=reactExports.useCallback(()=>{if(Na.current){Fa(sl=>sl+1);return}Qa(null),ga(null),Va(!1),Fa(0)},[Va,ga]),Ga=reactExports.useCallback((sl,rl,xl)=>{Ja(sl,rl,xl)},[Ja]),{setupIframe:Ua,clearSelectionState:qa,iframeRef:$a}=useIframeSelection({mode:Cr?"view":qr,isBoxModelVisible:!0,onTextEdit:Ga,onCommentClick:Da,onCommentSelectionClear:Ba}),tl=reactExports.useRef(Ea);reactExports.useEffect(()=>{Ea!==tl.current&&(tl.current=Ea,qr!=="edit"&&(Na.current||(Qa(null),ga(null),Va(!1),qa())))},[Ea,qr,qa,Va,ga]);const ll=reactExports.useCallback(sl=>{Qa(null),ga(null),xa(null),Fa(0),Va(!1),sl!=null&&sl.preserveSelection||qa()},[qa,Va,ga,xa]),ol=reactExports.useCallback(sl=>{const rl=pa.get(sl);rl&&(Va(!1),ga(sl),rl.styleVariants&&rl.styleVariants.length>0&&xa(sl),Qa({key:crypto.randomUUID(),elementContext:rl.elementContext,pin:rl.pin,dragBox:rl.dragBox,existingCommentId:sl}))},[pa,Va,ga,xa]),_a=reactExports.useCallback((sl,rl)=>{const xl=$a.current;if(!xl)return null;const El=xl.contentDocument??null;if(!El)return null;const Cl=resolveElementFromContext(El,sl);if(!Cl)return null;const Ml=xl.getBoundingClientRect(),hl=Cl.getBoundingClientRect();return{x:Ml.left+hl.left+rl.elementXPct*hl.width,y:Ml.top+hl.top+rl.elementYPct*hl.height}},[$a]),[,nl]=reactExports.useState(0),il=reactExports.useCallback(()=>nl(sl=>sl+1),[]);reactExports.useEffect(()=>{const sl=$a.current;if(!Za||!sl)return;const rl=sl.contentDocument;rl&&rl.addEventListener("scroll",il,!0);const xl=new ResizeObserver(il);return xl.observe(sl),sl.addEventListener("load",il),()=>{rl&&rl.removeEventListener("scroll",il,!0),xl.disconnect(),sl.removeEventListener("load",il)}},[Za,$a,il]);const ul=Za?_a(Za.elementContext,Za.pin):null;return reactExports.useEffect(()=>{if(kr!=="static"&&!Ia){Sa&&(Ca(null),Lr(null));return}if($a.current&&!Sa){const sl=kr==="static";console.log(`[IframePreview] Creating ${sl?"Static":""}IframeDisplayAdapter`);const rl=qr==="edit"?"edit":"view",xl=sl?new StaticIframeAdapter($a.current,{mode:rl,isBoxModelVisible:!0}):new IframeDisplayAdapter($a.current,{mode:rl,isBoxModelVisible:!0});xl.initialize(),Ca(xl),Lr(xl)}},[Sa,kr,Ia,qr,$a,Lr]),reactExports.useEffect(()=>()=>{Lr(null)},[Lr]),reactExports.useEffect(()=>{Za&&!Na.current&&qr!=="comment"&&(Qa(null),ga(null),qr==="view"&&qa())},[qr,Za,qa,ga]),reactExports.useEffect(()=>{var rl;if(!((rl=Wa.current)!=null&&rl.parentElement))return;const sl=Wa.current.parentElement.querySelector("#rivet-mouse-capture");if(sl){if(Ta.isEditing||!Ia||Aa){sl.style.pointerEvents="none";return}sl.style.pointerEvents="auto"}},[Ta.isEditing,Ia,Aa]),jsxRuntimeExports.jsxs("div",{className:"relative h-full w-full",children:[Cr?null:jsxRuntimeExports.jsx(CommandBar,{mode:qr,onModeChange:fa,isLoading:$}),!Ia&&ja?jsxRuntimeExports.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-main/90 px-6",children:jsxRuntimeExports.jsxs("div",{role:"alert","aria-live":"polite",className:"flex max-w-sm flex-col items-center gap-5 text-center",children:[jsxRuntimeExports.jsx("h2",{className:"text-3xl font-semibold text-content",children:"Preview isn't connected"}),jsxRuntimeExports.jsx("p",{className:"text-base leading-relaxed text-content-muted",children:"The connection between Rivet and your project is offline. Try restarting Rivet, then click reload below."}),jsxRuntimeExports.jsx("button",{onClick:()=>window.location.reload(),className:"rounded-md bg-primary px-10 py-2.5 text-sm font-medium text-white transition-colors hover:bg-primary-hover",children:"Reload"})]})}):null,jsxRuntimeExports.jsx("iframe",{ref:sl=>{sl&&(Ua(sl),Wa.current=sl,Fr($a))},src:Ha,className:"h-full w-full border-none",title:"Project Preview",sandbox:"allow-scripts allow-same-origin allow-forms allow-popups allow-modals",onLoad:()=>{va==null||va.capture("preview_iframe_loaded",{framework:kr,src:Ha})},onError:()=>{va==null||va.capture("preview_iframe_load_failed",{framework:kr,src:Ha}),log$6.warn("Preview iframe failed to load",{framework:kr,src:Ha})}},Ra),jsxRuntimeExports.jsx(CommentMarkerLayer,{onEditComment:ol}),ya?null:jsxRuntimeExports.jsx(CommentCarouselLayer,{}),(Za==null?void 0:Za.dragBox)&&$a.current&&(()=>{const sl=$a.current,rl=sl.getBoundingClientRect(),xl=sl.contentDocument;if(!xl)return null;const El=resolveElementFromContext(xl,Za.elementContext);if(!El)return null;const Cl=El.getBoundingClientRect(),{leftPct:Ml,topPct:hl,widthPct:yl,heightPct:Tl}=Za.dragBox;return jsxRuntimeExports.jsx("div",{"data-comment-drag-box":"true",style:{position:"fixed",pointerEvents:"none",zIndex:45,border:"1px dashed var(--color-primary-border, #ff6b35)",background:"rgba(255, 107, 53, 0.08)",borderRadius:2,boxSizing:"border-box",left:rl.left+Cl.left+Ml*Cl.width,top:rl.top+Cl.top+hl*Cl.height,width:yl*Cl.width,height:Tl*Cl.height}})})(),Za&&ul&&jsxRuntimeExports.jsx(CommentMarker,{comment:{id:"draft",elementContext:Za.elementContext,pin:Za.pin,instruction:"",status:"pending"},index:Za.existingCommentId?Math.max(0,Array.from(pa.keys()).indexOf(Za.existingCommentId)):pa.size,position:ul,onDismiss:()=>{},onEdit:()=>{}}),jsxRuntimeExports.jsx(AnimatePresence,{children:Za&&ul?jsxRuntimeExports.jsx(CommentPopover,{elementContext:Za.elementContext,pin:Za.pin,dragBox:Za.dragBox,position:ul,onClose:ll,existingCommentId:Za.existingCommentId,isMCPSession:ya,onInputChange:sl=>{Va(sl)},shake:Ka+ka},Za.key):null})]})},PreviewFrame=({isLoading:$=!1,isInteractionDisabled:Cr=!1,activeDemoSessionId:kr=null,holdHostedTryoutPreviewNavigation:Pr=!1})=>{const{config:Rr,fetchConfig:Ir,isLoading:Fr,error:Lr}=useServerConfig();return reactExports.useEffect(()=>{Ir().catch(qr=>{va==null||va.capture("preview_config_load_failed",{message:qr instanceof Error?qr.message:"unknown_error"})})},[Ir]),Fr?Pr?jsxRuntimeExports.jsx("div",{className:"flex h-full min-h-0 w-full flex-1 bg-main","aria-busy":"true"}):jsxRuntimeExports.jsx("div",{className:"flex h-full w-full items-center justify-center bg-main",children:jsxRuntimeExports.jsxs("div",{className:"rounded-lg border border-divider bg-main/95 p-4 text-center shadow-md",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium text-content",children:"Loading preview..."}),jsxRuntimeExports.jsx("p",{className:"text-content-dim mt-2 text-xs",children:"Fetching project configuration."})]})}):Lr||!Rr?jsxRuntimeExports.jsx("div",{className:"flex h-full w-full items-center justify-center bg-main px-6",children:jsxRuntimeExports.jsxs("div",{className:"max-w-md rounded-lg border border-divider bg-main/95 p-4 text-center shadow-md",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium text-content",children:"We couldn't load your app preview."}),jsxRuntimeExports.jsx("p",{className:"text-content-dim mt-2 text-xs",children:Lr||"Missing preview configuration from the server."}),jsxRuntimeExports.jsx("p",{className:"text-content-dim mt-2 text-xs",children:"If this keeps happening, restart your Rivet session and try again."}),jsxRuntimeExports.jsx("button",{type:"button",className:"mt-4 rounded-md border border-divider px-3 py-1.5 text-xs text-content hover:bg-main/80",onClick:()=>{va==null||va.capture("preview_config_retry_clicked"),Ir().catch(qr=>{va==null||va.capture("preview_config_load_failed",{message:qr instanceof Error?qr.message:"unknown_error"})})},children:"Retry preview"})]})}):jsxRuntimeExports.jsx("div",{className:"relative flex h-full min-h-0 w-full flex-1 flex-col",children:jsxRuntimeExports.jsx(IframePreview,{isLoading:$,isInteractionDisabled:Cr,framework:Rr.framework,userPort:Rr.userPort,activeDemoSessionId:kr,holdPreviewNavigation:Pr})})},Progress=({message:$,isLoading:Cr=!0})=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm text-content",children:[Cr?jsxRuntimeExports.jsx(s$6,{className:"h-4 w-4 shrink-0 animate-spin text-primary",weight:"bold"}):null,jsxRuntimeExports.jsx("span",{className:"whitespace-pre-wrap font-sans",children:$})]}),log$5=createLogger("SupportTicketModal"),MESSAGE_MAX_LENGTH=5e3,DEFAULT_TICKET_TYPE="feedback",extractValidationMessage=$=>{var Pr;if(!$)return null;const Cr=(Pr=$.formErrors)==null?void 0:Pr[0];if(Cr)return Cr;const kr=$.fieldErrors??{};for(const Rr of Object.values(kr)){const Ir=Rr==null?void 0:Rr[0];if(Ir)return Ir}return null},parseSupportTicketError=async $=>{let Cr;try{Cr=await $.json()}catch{Cr=void 0}if($.status===400){if(typeof(Cr==null?void 0:Cr.details)=="string"&&Cr.details.trim())return Cr.details;if(typeof(Cr==null?void 0:Cr.details)=="object"&&Cr.details!==null){const kr=extractValidationMessage(Cr.details);if(kr)return kr}return"Please check your feedback and try again."}return $.status>=500?typeof(Cr==null?void 0:Cr.details)=="string"&&Cr.details.trim()?Cr.details:"Could not send feedback right now. Please try again later.":typeof(Cr==null?void 0:Cr.error)=="string"&&Cr.error.trim()?Cr.error:`HTTP ${$.status}`},SupportTicketModal=({isOpen:$,onClose:Cr,contactEmail:kr})=>{const Pr=usePostHog(),[Rr,Ir]=reactExports.useState(""),[Fr,Lr]=reactExports.useState(!1),qr=reactExports.useCallback(()=>{Ir("")},[]),fa=reactExports.useCallback(()=>{Fr||(qr(),Cr())},[Fr,Cr,qr]),pa=reactExports.useCallback(async()=>{const ba=Rr.trim();if(!(!ba||Fr)){Lr(!0);try{const Aa=typeof(Pr==null?void 0:Pr.get_session_id)=="function"?Pr.get_session_id():void 0,ka=typeof(Pr==null?void 0:Pr.get_distinct_id)=="function"?Pr.get_distinct_id():void 0,Ea=kr==null?void 0:kr.trim(),Sa=await fetch("/api/support/tickets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:DEFAULT_TICKET_TYPE,message:ba,contactEmail:Ea||void 0,metadata:{posthogSessionId:Aa??void 0,posthogDistinctId:ka??void 0,appVersion:"0.8.0",appEnvironment:"production",pageUrl:window.location.href,userAgent:navigator.userAgent,submittedAt:new Date().toISOString()}})});if(!Sa.ok){const Ca=await parseSupportTicketError(Sa);throw new Error(Ca)}Pr==null||Pr.capture("support_ticket_submitted",{ticket_type:DEFAULT_TICKET_TYPE,has_posthog_session_id:!!Aa}),toast.success("Feedback sent",{description:"Thanks for sharing this."}),qr(),Cr()}catch(Aa){const ka=Aa instanceof Error?Aa.message:"Failed to send message";Pr==null||Pr.capture("support_ticket_submit_failed",{ticket_type:DEFAULT_TICKET_TYPE,error:ka}),log$5.error("Failed to submit support ticket:",ka),toast.error("Could not send feedback",{description:ka})}finally{Lr(!1)}}},[kr,Fr,Rr,Cr,Pr,qr]),ga=reactExports.useCallback(ba=>{ba.key==="Enter"&&(ba.metaKey||ba.ctrlKey)&&(ba.preventDefault(),pa())},[pa]),xa=MESSAGE_MAX_LENGTH-Rr.length,ya=Fr||Rr.trim().length===0;return jsxRuntimeExports.jsx(Root$1,{open:$,onOpenChange:ba=>!ba&&fa(),children:jsxRuntimeExports.jsxs(Portal,{children:[jsxRuntimeExports.jsx(Overlay,{className:"fixed inset-0 z-max bg-black/40"}),jsxRuntimeExports.jsx(Content$1,{className:"fixed left-1/2 top-1/2 z-max w-[480px] -translate-x-1/2 -translate-y-1/2 rounded-lg border border-divider bg-main p-6 shadow-xl outline-none",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx(Title,{className:"text-lg font-semibold text-content",children:"Send feedback"}),jsxRuntimeExports.jsx(Close,{asChild:!0,children:jsxRuntimeExports.jsx("button",{className:"rounded p-1 text-content-subtle transition-colors hover:text-content",disabled:Fr,children:jsxRuntimeExports.jsx(n$1,{className:"h-4 w-4",weight:"bold"})})})]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-content-subtle",children:"Tell us what happened or what we can improve."}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx("label",{htmlFor:"support-ticket-message",className:"text-xs font-medium text-content-muted",children:"Your feedback"}),jsxRuntimeExports.jsx("textarea",{id:"support-ticket-message",value:Rr,onChange:ba=>Ir(ba.target.value),onKeyDown:ga,maxLength:MESSAGE_MAX_LENGTH,rows:7,disabled:Fr,placeholder:"What happened?",className:"w-full resize-none rounded-md border border-divider bg-main-input px-3 py-2 text-sm text-content outline-none placeholder:text-content-subtle disabled:opacity-50"}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between text-xs text-content-subtle",children:[jsxRuntimeExports.jsx("span",{children:"Context details are included automatically."}),jsxRuntimeExports.jsx("span",{children:xa})]})]}),jsxRuntimeExports.jsx("button",{onClick:pa,disabled:ya,className:"flex w-full items-center justify-center gap-2 rounded-md bg-primary px-3 py-2 text-xs text-white transition-colors hover:bg-primary-hover disabled:opacity-50",children:Fr?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(s$6,{className:"h-4 w-4 animate-spin",weight:"bold"}),jsxRuntimeExports.jsx("span",{children:"Sending..."})]}):jsxRuntimeExports.jsx("span",{children:"Send feedback"})})]})})]})})},rivetWordmark="data:image/svg+xml,%3csvg%20width='94'%20height='24'%20viewBox='0%200%2094%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M-0.000156164%2023.832V7.704H5.11184L6.47984%208.424C7.58384%207.704%209.04784%207.344%2010.8718%207.344C12.0718%207.344%2013.1278%207.476%2014.0398%207.74C14.9518%207.98%2015.6838%208.244%2016.2358%208.532C16.8118%208.82%2017.1718%209.024%2017.3158%209.144L15.5158%2013.824C15.2758%2013.656%2014.8198%2013.428%2014.1478%2013.14C13.4998%2012.852%2012.7318%2012.588%2011.8438%2012.348C10.9558%2012.084%2010.0198%2011.952%209.03584%2011.952H8.63984C7.96784%2011.952%207.45184%2012.072%207.09184%2012.312C6.73184%2012.528%206.55184%2013.02%206.55184%2013.788V23.832H-0.000156164ZM23.464%206.156C21.04%206.156%2019.828%205.124%2019.828%203.06C19.828%201.908%2020.128%201.116%2020.728%200.684C21.352%200.227999%2022.264%20-1.43051e-06%2023.464%20-1.43051e-06C24.736%20-1.43051e-06%2025.66%200.227999%2026.236%200.684C26.836%201.116%2027.136%201.908%2027.136%203.06C27.136%205.124%2025.912%206.156%2023.464%206.156ZM20.152%2023.832V7.704H26.704V23.832H20.152ZM37.4767%2023.832L29.6647%207.704H36.9007L40.3207%2016.524L41.2567%2019.116H41.6167L42.5527%2016.524L46.0087%207.704H53.1727L52.5967%209.9L45.4327%2023.832H37.4767ZM61.1953%2023.832C59.6113%2023.832%2058.3873%2023.604%2057.5233%2023.148C56.6833%2022.692%2056.1073%2022.068%2055.7953%2021.276C55.4833%2020.46%2055.3273%2019.524%2055.3273%2018.468V13.032C55.3273%2012.072%2055.4833%2011.196%2055.7953%2010.404C56.1313%209.588%2056.7193%208.94%2057.5593%208.46C58.3993%207.956%2059.6113%207.704%2061.1953%207.704H68.6473C70.5193%207.704%2071.9473%207.932%2072.9313%208.388C73.9393%208.82%2074.6233%209.444%2074.9833%2010.26C75.3673%2011.052%2075.5593%2011.976%2075.5593%2013.032V17.64H69.2593C67.0993%2017.64%2065.4553%2017.592%2064.3273%2017.496C63.2233%2017.4%2062.4433%2017.34%2061.9873%2017.316V17.856C61.9633%2018.816%2062.5393%2019.296%2063.7153%2019.296H64.8313C66.7513%2019.296%2068.5273%2019.26%2070.1593%2019.188C71.7913%2019.092%2073.0033%2019.008%2073.7953%2018.936L75.9553%2022.356C75.9553%2022.596%2075.7513%2022.824%2075.3433%2023.04C74.9353%2023.256%2074.2153%2023.448%2073.1833%2023.616C72.1753%2023.76%2070.7353%2023.832%2068.8633%2023.832H61.1953ZM61.9873%2014.184H68.8993V13.68C68.8993%2013.2%2068.8513%2012.864%2068.7553%2012.672C68.6833%2012.48%2068.4313%2012.36%2067.9993%2012.312C67.5673%2012.264%2066.8353%2012.24%2065.8033%2012.24H63.7153C62.5633%2012.24%2061.9873%2012.72%2061.9873%2013.68V14.184ZM85.8224%2023.832C83.9984%2023.832%2082.7504%2023.448%2082.0784%2022.68C81.4064%2021.912%2081.0704%2020.76%2081.0704%2019.224V12.24H78.1184V7.704H79.6304C80.0384%207.704%2080.3624%207.632%2080.6024%207.488C80.8664%207.32%2081.0344%207.032%2081.1064%206.624L81.7904%202.772H87.6944V7.704H93.7064V12.24H87.6944V17.82C87.6944%2018.42%2087.8384%2018.816%2088.1264%2019.008C88.4144%2019.2%2088.8464%2019.296%2089.4224%2019.296H93.0224L93.7424%2023.472C93.2384%2023.544%2092.4704%2023.628%2091.4384%2023.724C90.4064%2023.796%2089.2784%2023.832%2088.0544%2023.832H85.8224Z'%20fill='%23FF3300'/%3e%3c/svg%3e",AuthScreenView=({isSigningIn:$,onStartSignIn:Cr,errorMessage:kr=null,isDesktopShell:Pr=!1,displayMode:Rr="full"})=>{const Ir=Rr==="modal";return jsxRuntimeExports.jsxs("div",{className:Ir?"glass-panel relative w-full max-w-sm rounded-2xl border border-white/10 px-8 py-14 font-main text-white shadow-2xl":"relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-[#1c1c20] font-main text-white",children:[Pr&&!Ir?jsxRuntimeExports.jsx("div",{className:"fixed left-0 right-0 top-0 z-10 h-8",style:{WebkitAppRegion:"drag"}}):null,jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-10",children:[jsxRuntimeExports.jsx("img",{src:rivetWordmark,alt:"Rivet",className:"h-8 w-auto object-contain"}),jsxRuntimeExports.jsxs("div",{className:"text-center",children:[jsxRuntimeExports.jsx("h1",{className:"mb-2 text-xl font-medium text-content",children:"Welcome to Rivet"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-content-muted",children:"Sign in to get started"})]}),jsxRuntimeExports.jsx("button",{onClick:Cr,disabled:$,className:"glass-panel active-push flex items-center gap-3 rounded-xl px-8 py-3.5 text-sm font-medium transition-all hover:bg-white/10 disabled:opacity-50",children:$?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-primary border-t-transparent"}),jsxRuntimeExports.jsx("span",{children:"Signing in..."})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("img",{src:"https://www.gstatic.com/firebasejs/ui/2.0.0/images/auth/google.svg",alt:"Google",className:"h-5 w-5 brightness-110"}),jsxRuntimeExports.jsx("span",{children:"Sign in with Google"})]})}),kr?jsxRuntimeExports.jsx("p",{className:"text-center text-xs text-red-200",children:kr}):null]})]})},log$4=createLogger("useConfig"),useConfig=()=>{const[$,Cr]=reactExports.useState(null),kr=useAtomValue(featureFlagsAtom),Pr=useSetAtom(featureFlagsAtom),[Rr,Ir]=reactExports.useState(!0),[Fr,Lr]=reactExports.useState(null),qr=useSetAtom(isMCPSessionAtom),fa=useSetAtom(mcpEditorAtom),pa=useSetAtom(agentModeAvailableAtom),ga=reactExports.useCallback(ya=>{Cr(ya),pa(ya.agentModeAvailable),Pr(ya.featureFlags??DEFAULT_FEATURE_FLAGS),ya.isMCPSession&&qr(!0),ya.mcpEditor&&fa(ya.mcpEditor)},[pa,Pr,qr,fa]),xa=reactExports.useCallback(async()=>{try{const ya=await fetch("/api/config");if(!ya.ok)throw new Error(`Failed to fetch config: ${ya.statusText}`);const ba=await ya.json();return ga(ba),Lr(null),log$4.info("Config refetched:",ba),ba}catch(ya){const ba=ya instanceof Error?ya.message:"Failed to load config";return Lr(ba),log$4.warn("Failed to refetch config:",ba),null}},[ga]);return reactExports.useEffect(()=>{let ya=!1;return(async()=>{try{const Aa=await fetch("/api/config");if(!Aa.ok)throw new Error(`Failed to fetch config: ${Aa.statusText}`);const ka=await Aa.json();ya||(ga(ka),log$4.info("Config loaded:",ka))}catch(Aa){const ka=Aa instanceof Error?Aa.message:"Failed to load config";ya||(Lr(ka),log$4.warn("Failed to load config:",ka))}finally{ya||Ir(!1)}})(),()=>{ya=!0}},[ga]),{config:$,featureFlags:kr,loading:Rr,error:Fr,refetchConfig:xa}};var define_process_env_default={};const DEFAULT_PROXY_URL="https://rivet-proxy.onrender.com";var jg;const envProxyUrl=(jg=define_process_env_default.RIVET_PROXY_URL)==null?void 0:jg.trim(),PROXY_URL=envProxyUrl&&envProxyUrl.length>0?envProxyUrl:DEFAULT_PROXY_URL,DEFAULT_GATEWAY_URL="https://rivet-core-production.up.railway.app";var Dg;const envGatewayUrl=(Dg=define_process_env_default.RIVET_GATEWAY_URL)==null?void 0:Dg.trim();envGatewayUrl&&envGatewayUrl.length>0;const log$3=createLogger("useOAuthCallback"),useOAuthCallback=()=>{const[$,Cr]=reactExports.useState({isProcessing:!1,isComplete:!1,error:null});return reactExports.useEffect(()=>{(async()=>{var Ir,Fr;const Pr=window.location.hash,Rr=window.location.search;if(!(!Pr||!Pr.includes("access_token"))){Cr({isProcessing:!0,isComplete:!1,error:null});try{log$3.info("Processing OAuth callback...");const Lr=new URLSearchParams(Pr.substring(1)),qr=Lr.get("access_token"),fa=Lr.get("refresh_token"),ga=new URLSearchParams(Rr).get("session");if(!qr)throw new Error("No access token found in URL");if(!ga)throw new Error("No session ID found in URL");log$3.info(`Completing OAuth with session: ${ga}`);const xa=await fetch(`${PROXY_URL}/api/auth/google/complete`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:ga,accessToken:qr,refreshToken:fa})}),ya=await xa.json();if(!xa.ok||!ya.success)throw new Error(ya.error||ya.message||"Failed to complete authentication");if(log$3.info("OAuth authentication completed successfully"),(Ir=ya.user)!=null&&Ir.email&&va.identify(ya.user.email,{email:ya.user.email}),(Fr=ya.user)!=null&&Fr.email&&qr)try{const Aa=await fetch("/api/auth/store",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:ya.user.email,token:qr,refreshToken:fa})});Aa.ok||log$3.warn(`Local auth store returned ${Aa.status}`)}catch(Aa){log$3.warn("Failed to store auth locally:",Aa)}const ba=window.location.pathname;window.history.replaceState({},document.title,ba),Cr({isProcessing:!1,isComplete:!0,error:null})}catch(Lr){const qr=Lr instanceof Error?Lr.message:"Unknown error occurred";log$3.warn("OAuth callback error:",Lr),Cr({isProcessing:!1,isComplete:!1,error:qr})}}})()},[]),$},log$2=createLogger("useTokenEditor"),useTokenEditor=()=>{const[$,Cr]=reactExports.useState(null),[kr,Pr]=reactExports.useState(null),[Rr,Ir]=reactExports.useState(new Map),[Fr,Lr]=reactExports.useState(!0),[qr,fa]=reactExports.useState(!1),[pa,ga]=reactExports.useState(null),xa=reactExports.useCallback(async()=>{Lr(!0),ga(null);try{const ka=await fetch("/api/tokens");if(!ka.ok)throw new Error(`Failed to fetch tokens: ${ka.statusText}`);const Ea=await ka.json();Cr(Ea.registry),Pr(Ea.framework),log$2.info(`Loaded ${Ea.framework} tokens`)}catch(ka){const Ea=ka instanceof Error?ka.message:"Unknown error";ga(Ea),log$2.warn("Failed to fetch tokens:",ka)}finally{Lr(!1)}},[]);reactExports.useEffect(()=>{xa()},[xa]);const ya=reactExports.useCallback((ka,Ea,Sa,Ca)=>{const Ta=`${ka}.${Ea}`;Ir(Ia=>{const Ra=new Map(Ia);return Ca===Sa?Ra.delete(Ta):Ra.set(Ta,{category:ka,path:Ea,originalValue:Sa,newValue:Ca}),Ra})},[]),ba=reactExports.useCallback(async()=>{if(Rr.size===0)return!0;fa(!0),ga(null);const ka=Array.from(Rr.values());let Ea=!0;for(const Sa of ka)try{log$2.info(`Saving ${Sa.category}.${Sa.path} = "${Sa.newValue}"`);const Ta=await(await fetch("/api/tokens/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:Sa.category,path:Sa.path,value:Sa.newValue})})).json();if(!Ta.success)throw new Error(Ta.error||"Update failed");log$2.info(`Successfully saved ${Sa.category}.${Sa.path}`)}catch(Ca){const Ta=Ca instanceof Error?Ca.message:"Unknown error";ga(`Failed to update ${Sa.category}.${Sa.path}: ${Ta}`),log$2.warn(`Failed to save ${Sa.category}.${Sa.path}:`,Ca),Ea=!1;break}return Ea&&(Ir(new Map),await xa()),fa(!1),Ea},[Rr,xa]),Aa=reactExports.useCallback(()=>{Ir(new Map),log$2.info("Reverted all pending changes")},[]);return{tokens:$,framework:kr,pendingChanges:Rr,isLoading:Fr,isSaving:qr,error:pa,updateToken:ya,saveChanges:ba,revertChanges:Aa,refetch:xa}};var ENTRY_FOCUS="rovingFocusGroup.onEntryFocus",EVENT_OPTIONS={bubbles:!1,cancelable:!0},GROUP_NAME="RovingFocusGroup",[Collection,useCollection,createCollectionScope]=createCollection(GROUP_NAME),[createRovingFocusGroupContext,createRovingFocusGroupScope]=createContextScope(GROUP_NAME,[createCollectionScope]),[RovingFocusProvider,useRovingFocusContext]=createRovingFocusGroupContext(GROUP_NAME),RovingFocusGroup=reactExports.forwardRef(($,Cr)=>jsxRuntimeExports.jsx(Collection.Provider,{scope:$.__scopeRovingFocusGroup,children:jsxRuntimeExports.jsx(Collection.Slot,{scope:$.__scopeRovingFocusGroup,children:jsxRuntimeExports.jsx(RovingFocusGroupImpl,{...$,ref:Cr})})}));RovingFocusGroup.displayName=GROUP_NAME;var RovingFocusGroupImpl=reactExports.forwardRef(($,Cr)=>{const{__scopeRovingFocusGroup:kr,orientation:Pr,loop:Rr=!1,dir:Ir,currentTabStopId:Fr,defaultCurrentTabStopId:Lr,onCurrentTabStopIdChange:qr,onEntryFocus:fa,preventScrollOnEntryFocus:pa=!1,...ga}=$,xa=reactExports.useRef(null),ya=useComposedRefs(Cr,xa),ba=useDirection(Ir),[Aa,ka]=useControllableState({prop:Fr,defaultProp:Lr??null,onChange:qr,caller:GROUP_NAME}),[Ea,Sa]=reactExports.useState(!1),Ca=useCallbackRef$1(fa),Ta=useCollection(kr),Ia=reactExports.useRef(!1),[Ra,ja]=reactExports.useState(0);return reactExports.useEffect(()=>{const Oa=xa.current;if(Oa)return Oa.addEventListener(ENTRY_FOCUS,Ca),()=>Oa.removeEventListener(ENTRY_FOCUS,Ca)},[Ca]),jsxRuntimeExports.jsx(RovingFocusProvider,{scope:kr,orientation:Pr,dir:ba,loop:Rr,currentTabStopId:Aa,onItemFocus:reactExports.useCallback(Oa=>ka(Oa),[ka]),onItemShiftTab:reactExports.useCallback(()=>Sa(!0),[]),onFocusableItemAdd:reactExports.useCallback(()=>ja(Oa=>Oa+1),[]),onFocusableItemRemove:reactExports.useCallback(()=>ja(Oa=>Oa-1),[]),children:jsxRuntimeExports.jsx(Primitive.div,{tabIndex:Ea||Ra===0?-1:0,"data-orientation":Pr,...ga,ref:ya,style:{outline:"none",...$.style},onMouseDown:composeEventHandlers($.onMouseDown,()=>{Ia.current=!0}),onFocus:composeEventHandlers($.onFocus,Oa=>{const La=!Ia.current;if(Oa.target===Oa.currentTarget&&La&&!Ea){const Ha=new CustomEvent(ENTRY_FOCUS,EVENT_OPTIONS);if(Oa.currentTarget.dispatchEvent(Ha),!Ha.defaultPrevented){const Wa=Ta().filter(Na=>Na.focusable),Ja=Wa.find(Na=>Na.active),Ya=Wa.find(Na=>Na.id===Aa),Qa=[Ja,Ya,...Wa].filter(Boolean).map(Na=>Na.ref.current);focusFirst(Qa,pa)}}Ia.current=!1}),onBlur:composeEventHandlers($.onBlur,()=>Sa(!1))})})}),ITEM_NAME="RovingFocusGroupItem",RovingFocusGroupItem=reactExports.forwardRef(($,Cr)=>{const{__scopeRovingFocusGroup:kr,focusable:Pr=!0,active:Rr=!1,tabStopId:Ir,children:Fr,...Lr}=$,qr=useId(),fa=Ir||qr,pa=useRovingFocusContext(ITEM_NAME,kr),ga=pa.currentTabStopId===fa,xa=useCollection(kr),{onFocusableItemAdd:ya,onFocusableItemRemove:ba,currentTabStopId:Aa}=pa;return reactExports.useEffect(()=>{if(Pr)return ya(),()=>ba()},[Pr,ya,ba]),jsxRuntimeExports.jsx(Collection.ItemSlot,{scope:kr,id:fa,focusable:Pr,active:Rr,children:jsxRuntimeExports.jsx(Primitive.span,{tabIndex:ga?0:-1,"data-orientation":pa.orientation,...Lr,ref:Cr,onMouseDown:composeEventHandlers($.onMouseDown,ka=>{Pr?pa.onItemFocus(fa):ka.preventDefault()}),onFocus:composeEventHandlers($.onFocus,()=>pa.onItemFocus(fa)),onKeyDown:composeEventHandlers($.onKeyDown,ka=>{if(ka.key==="Tab"&&ka.shiftKey){pa.onItemShiftTab();return}if(ka.target!==ka.currentTarget)return;const Ea=getFocusIntent(ka,pa.orientation,pa.dir);if(Ea!==void 0){if(ka.metaKey||ka.ctrlKey||ka.altKey||ka.shiftKey)return;ka.preventDefault();let Ca=xa().filter(Ta=>Ta.focusable).map(Ta=>Ta.ref.current);if(Ea==="last")Ca.reverse();else if(Ea==="prev"||Ea==="next"){Ea==="prev"&&Ca.reverse();const Ta=Ca.indexOf(ka.currentTarget);Ca=pa.loop?wrapArray(Ca,Ta+1):Ca.slice(Ta+1)}setTimeout(()=>focusFirst(Ca))}}),children:typeof Fr=="function"?Fr({isCurrentTabStop:ga,hasTabStop:Aa!=null}):Fr})})});RovingFocusGroupItem.displayName=ITEM_NAME;var MAP_KEY_TO_FOCUS_INTENT={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function getDirectionAwareKey($,Cr){return Cr!=="rtl"?$:$==="ArrowLeft"?"ArrowRight":$==="ArrowRight"?"ArrowLeft":$}function getFocusIntent($,Cr,kr){const Pr=getDirectionAwareKey($.key,kr);if(!(Cr==="vertical"&&["ArrowLeft","ArrowRight"].includes(Pr))&&!(Cr==="horizontal"&&["ArrowUp","ArrowDown"].includes(Pr)))return MAP_KEY_TO_FOCUS_INTENT[Pr]}function focusFirst($,Cr=!1){const kr=document.activeElement;for(const Pr of $)if(Pr===kr||(Pr.focus({preventScroll:Cr}),document.activeElement!==kr))return}function wrapArray($,Cr){return $.map((kr,Pr)=>$[(Cr+Pr)%$.length])}var Root=RovingFocusGroup,Item=RovingFocusGroupItem,TABS_NAME="Tabs",[createTabsContext]=createContextScope(TABS_NAME,[createRovingFocusGroupScope]),useRovingFocusGroupScope=createRovingFocusGroupScope(),[TabsProvider,useTabsContext]=createTabsContext(TABS_NAME),Tabs=reactExports.forwardRef(($,Cr)=>{const{__scopeTabs:kr,value:Pr,onValueChange:Rr,defaultValue:Ir,orientation:Fr="horizontal",dir:Lr,activationMode:qr="automatic",...fa}=$,pa=useDirection(Lr),[ga,xa]=useControllableState({prop:Pr,onChange:Rr,defaultProp:Ir??"",caller:TABS_NAME});return jsxRuntimeExports.jsx(TabsProvider,{scope:kr,baseId:useId(),value:ga,onValueChange:xa,orientation:Fr,dir:pa,activationMode:qr,children:jsxRuntimeExports.jsx(Primitive.div,{dir:pa,"data-orientation":Fr,...fa,ref:Cr})})});Tabs.displayName=TABS_NAME;var TAB_LIST_NAME="TabsList",TabsList=reactExports.forwardRef(($,Cr)=>{const{__scopeTabs:kr,loop:Pr=!0,...Rr}=$,Ir=useTabsContext(TAB_LIST_NAME,kr),Fr=useRovingFocusGroupScope(kr);return jsxRuntimeExports.jsx(Root,{asChild:!0,...Fr,orientation:Ir.orientation,dir:Ir.dir,loop:Pr,children:jsxRuntimeExports.jsx(Primitive.div,{role:"tablist","aria-orientation":Ir.orientation,...Rr,ref:Cr})})});TabsList.displayName=TAB_LIST_NAME;var TRIGGER_NAME="TabsTrigger",TabsTrigger=reactExports.forwardRef(($,Cr)=>{const{__scopeTabs:kr,value:Pr,disabled:Rr=!1,...Ir}=$,Fr=useTabsContext(TRIGGER_NAME,kr),Lr=useRovingFocusGroupScope(kr),qr=makeTriggerId(Fr.baseId,Pr),fa=makeContentId(Fr.baseId,Pr),pa=Pr===Fr.value;return jsxRuntimeExports.jsx(Item,{asChild:!0,...Lr,focusable:!Rr,active:pa,children:jsxRuntimeExports.jsx(Primitive.button,{type:"button",role:"tab","aria-selected":pa,"aria-controls":fa,"data-state":pa?"active":"inactive","data-disabled":Rr?"":void 0,disabled:Rr,id:qr,...Ir,ref:Cr,onMouseDown:composeEventHandlers($.onMouseDown,ga=>{!Rr&&ga.button===0&&ga.ctrlKey===!1?Fr.onValueChange(Pr):ga.preventDefault()}),onKeyDown:composeEventHandlers($.onKeyDown,ga=>{[" ","Enter"].includes(ga.key)&&Fr.onValueChange(Pr)}),onFocus:composeEventHandlers($.onFocus,()=>{const ga=Fr.activationMode!=="manual";!pa&&!Rr&&ga&&Fr.onValueChange(Pr)})})})});TabsTrigger.displayName=TRIGGER_NAME;var CONTENT_NAME="TabsContent",TabsContent=reactExports.forwardRef(($,Cr)=>{const{__scopeTabs:kr,value:Pr,forceMount:Rr,children:Ir,...Fr}=$,Lr=useTabsContext(CONTENT_NAME,kr),qr=makeTriggerId(Lr.baseId,Pr),fa=makeContentId(Lr.baseId,Pr),pa=Pr===Lr.value,ga=reactExports.useRef(pa);return reactExports.useEffect(()=>{const xa=requestAnimationFrame(()=>ga.current=!1);return()=>cancelAnimationFrame(xa)},[]),jsxRuntimeExports.jsx(Presence,{present:Rr||pa,children:({present:xa})=>jsxRuntimeExports.jsx(Primitive.div,{"data-state":pa?"active":"inactive","data-orientation":Lr.orientation,role:"tabpanel","aria-labelledby":qr,hidden:!xa,id:fa,tabIndex:0,...Fr,ref:Cr,style:{...$.style,animationDuration:ga.current?"0s":void 0},children:xa&&Ir})})});TabsContent.displayName=CONTENT_NAME;function makeTriggerId($,Cr){return`${$}-trigger-${Cr}`}function makeContentId($,Cr){return`${$}-content-${Cr}`}var Root2=Tabs,List=TabsList,Trigger=TabsTrigger,Content=TabsContent;const ColorSwatchGrid=({tokens:$,pendingChanges:Cr,category:kr,onUpdateToken:Pr,highlightToken:Rr})=>{const[Ir,Fr]=reactExports.useState(null),[Lr,qr]=reactExports.useState(""),fa=reactExports.useRef(null);if(reactExports.useEffect(()=>{Rr&&fa.current&&setTimeout(()=>{var Aa;(Aa=fa.current)==null||Aa.scrollIntoView({behavior:"smooth",block:"center"})},100)},[Rr]),!$||Object.keys($).length===0)return jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center py-12 text-sm text-gray-500",children:"No tokens defined for this category"});const pa=(Aa,ka)=>{const Ea=`${kr}.${Aa}`,Sa=Cr.get(Ea);return Sa?Sa.newValue:ka},ga=Aa=>{if(Aa.includes("var(")||Aa.includes("--"))return{textClass:"text-white",mutedClass:"text-white/70"};let ka=0,Ea=0,Sa=0,Ca=!1;if(Aa.startsWith("#")){const ja=Aa.slice(1);ja.length===3?(ka=parseInt(ja[0]+ja[0],16),Ea=parseInt(ja[1]+ja[1],16),Sa=parseInt(ja[2]+ja[2],16),Ca=!0):ja.length>=6&&(ka=parseInt(ja.slice(0,2),16),Ea=parseInt(ja.slice(2,4),16),Sa=parseInt(ja.slice(4,6),16),Ca=!0)}const Ta=Aa.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(Ta&&(ka=parseInt(Ta[1],10),Ea=parseInt(Ta[2],10),Sa=parseInt(Ta[3],10),Ca=!0),!Ca){const ja=Aa.match(/rgba?\(\s*(\d+)\s+(\d+)\s+(\d+)/);ja&&(ka=parseInt(ja[1],10),Ea=parseInt(ja[2],10),Sa=parseInt(ja[3],10),Ca=!0)}if(!Ca){const ja=Aa.match(/hsla?\(\s*(\d+)\s*,\s*(\d+)%?\s*,\s*(\d+)%?/);if(ja){const Oa=hslValuesToRgb(parseInt(ja[1],10),parseInt(ja[2],10),parseInt(ja[3],10));ka=Oa.r,Ea=Oa.g,Sa=Oa.b,Ca=!0}}if(!Ca){const ja=Aa.match(/hsla?\(\s*(\d+)\s+(\d+)%?\s+(\d+)%?/);if(ja){const Oa=hslValuesToRgb(parseInt(ja[1],10),parseInt(ja[2],10),parseInt(ja[3],10));ka=Oa.r,Ea=Oa.g,Sa=Oa.b,Ca=!0}}if(!Ca){const ja=Aa.match(/oklch\(\s*([\d.]+)(%?)/);if(ja){const Oa=parseFloat(ja[1]),Ha=(ja[2]==="%"?Oa/100:Oa)>.5;return{textClass:Ha?"text-gray-900":"text-white",mutedClass:Ha?"text-gray-600":"text-white/70"}}}if(!Ca)return{textClass:"text-white",mutedClass:"text-white/70"};const Ra=calculateLuminance(ka,Ea,Sa)>.5;return{textClass:Ra?"text-gray-900":"text-white",mutedClass:Ra?"text-gray-600":"text-white/70"}},xa=(Aa,ka,Ea,Sa)=>{const Ca=pa(ka,Ea),Ta=Ir===ka,Ia=Ta&&Lr?Lr:Ca,Ra=ka.replace(/\./g,"-"),ja=Rr===Ra||Rr===Aa,Oa=Ia.includes("rgba")||Ia.startsWith("#")&&Ia.length===9||/oklch\(/.test(Ia)&&Ia.includes("/"),{textClass:La}=ga(Ia),Ha=Za=>{qr(Za)},Wa=Za=>{Pr(kr,ka,Ea,Za),Fr(null),qr("")},Ja=Za=>{Za?(Fr(ka),qr(Ca)):(Lr&&Lr!==Ca&&Pr(kr,ka,Ea,Lr),Fr(null),qr(""))},Ya=Sa?"h-44":"h-52";return jsxRuntimeExports.jsxs(Root2$3,{open:Ta,onOpenChange:Ja,children:[jsxRuntimeExports.jsx(Trigger$4,{asChild:!0,children:jsxRuntimeExports.jsxs("div",{ref:ja?fa:null,className:`group relative flex ${Ya} cursor-pointer flex-col justify-between overflow-hidden rounded-lg border border-white/10 p-4 transition-all ${ja?"animate-token-highlight":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"absolute inset-0",children:[Oa&&jsxRuntimeExports.jsx("div",{className:"absolute inset-0",style:{backgroundImage:`
|
|
346
|
+
`,this.iframeRef.parentElement.appendChild(Cr)),Cr}removeMouseCaptureOverlay(){var kr;if(!((kr=this.iframeRef)!=null&&kr.parentElement))return;const Cr=this.iframeRef.parentElement.querySelector("#rivet-mouse-capture");Cr&&Cr.remove()}isOverlayInSidebar(Cr,kr,Pr,Rr){const Ir=document.querySelector('[data-cy="element-inspector"]');if(!Ir)return!1;const Fr=Ir.getBoundingClientRect(),Lr=Cr+Pr,qr=kr+Rr;return!(Lr<=Fr.left||Cr>=Fr.right||qr<=Fr.top||kr>=Fr.bottom)}getComputedStyles(){if(!this.currentElement||!this.iframeRef)return log$8.warn("Attempt to get computed styles failed: currentElement ",this.currentElement,"iFrameRef:",this.iframeRef),{};const Cr=this.iframeRef.contentWindow;if(!Cr)return log$8.warn("Attempt to get computed styles failed: iFrameWindow not defined"),{};const kr=Cr.getComputedStyle(this.currentElement),Pr={};for(let Rr=0;Rr<kr.length;Rr++){const Ir=kr[Rr];Pr[Ir]=kr.getPropertyValue(Ir)}return Pr.background=addSyntheticBackground(Pr),Pr}onStylesChanged(Cr){return this.onStylesChangedCallback=Cr,()=>{this.onStylesChangedCallback=null}}refreshStyles(){const Cr=this.getComputedStyles();this.notifyStylesChanged(Cr)}setCurrentElement(Cr){this.currentElement=Cr,Cr&&this.refreshStyles()}notifyStylesChanged(Cr){this.onStylesChangedCallback&&this.onStylesChangedCallback(Cr)}async applyStyle(Cr,kr,Pr){const Rr=await this.findElement(Cr);if(!Rr.ok)return Err(Rr.error);const Ir=Rr.value;Cr.rivetId&&this.injectRivetId(Ir,Cr.rivetId);try{return Ir.style[kr]=Pr,Ok(void 0)}catch(Fr){return Err(new StyleApplicationError(kr,Pr,Fr instanceof Error?Fr.message:String(Fr)))}}async getComputedStylesForElement(Cr){const kr=await this.findElement(Cr);if(!kr.ok)return Err(kr.error);const Pr=kr.value;if(!this.iframeRef)return Err(new ElementNotFoundError(Cr,"Iframe ref is null"));const Rr=this.iframeRef.contentWindow;if(!Rr)return Err(new ElementNotFoundError(Cr,"Iframe window is null"));try{const Ir=Rr.getComputedStyle(Pr),Fr={};for(let Lr=0;Lr<Ir.length;Lr++){const qr=Ir[Lr];Fr[qr]=Ir.getPropertyValue(qr)}return Fr.background=addSyntheticBackground(Fr),Ok(Fr)}catch(Ir){return Err(new ElementNotFoundError(Cr,Ir instanceof Error?Ir.message:String(Ir)))}}async findElement(Cr){if(!this.iframeRef)return Err(new ElementNotFoundError(Cr,"Iframe ref is null"));const kr=getIframeDocument(this.iframeRef);if(!kr)return Err(new ElementNotFoundError(Cr,"Cannot access iframe document"));if(Cr.rivetId){const Pr=kr.querySelector(`[data-rivet-id="${Cr.rivetId}"]`);if(Pr)return Ok(Pr)}if(Cr.xpath){const Pr=getElementByXPath(kr,Cr.xpath);if(Pr)return Ok(Pr)}if(Cr.cssSelector)try{const Pr=kr.querySelector(Cr.cssSelector);if(Pr)return Ok(Pr)}catch(Pr){log$8.warn("Invalid CSS selector:",Cr.cssSelector,Pr)}return Err(new ElementNotFoundError(Cr,"Element not found using any identifier strategy"))}injectRivetId(Cr,kr){Cr.setAttribute("data-rivet-id",kr)}createElementIdentifier(Cr){const kr=Cr.getAttribute("data-rivet-id"),Pr=getXPath(Cr);let Rr;if(Cr.id)Rr=`#${Cr.id}`;else if(Cr.className&&typeof Cr.className=="string"){const Ir=Cr.className.trim().split(/\s+/).join(".");Ir&&(Rr=`${Cr.tagName.toLowerCase()}.${Ir}`)}return{rivetId:kr||"",xpath:Pr,cssSelector:Rr}}onHMR(Cr){var Fr;this.hmrCallbacks.push(Cr);let kr=null,Pr=null;const Rr=()=>{Pr&&clearTimeout(Pr),Pr=setTimeout(()=>{this.handleIframeLoad()},1e3)};this.iframeRef&&this.hmrCallbacks.length===1&&this.iframeRef.addEventListener("load",this.handleIframeLoad);const Ir=this.iframeRef?getIframeDocument(this.iframeRef):null;if(Ir){kr=new MutationObserver(fa=>{fa.some(ga=>{var ya;const xa=ga.target;return!((ya=xa.closest)!=null&&ya.call(xa,'[id^="rivet-"]'))})&&Rr()});const Lr=Ir.body??Ir.documentElement??Ir,qr=((Fr=Ir.defaultView)==null?void 0:Fr.Node)??Node;if(Lr instanceof qr)try{kr.observe(Lr,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","src","href"],characterData:!0})}catch{}}return()=>{const Lr=this.hmrCallbacks.indexOf(Cr);Lr!==-1&&this.hmrCallbacks.splice(Lr,1),kr==null||kr.disconnect(),Pr&&clearTimeout(Pr),this.hmrCallbacks.length===0&&this.iframeRef&&this.iframeRef.removeEventListener("load",this.handleIframeLoad)}}forceReload(){return new Promise((Cr,kr)=>{var Lr;if(!((Lr=this.iframeRef)!=null&&Lr.contentWindow)){Cr();return}let Pr,Rr=!1;const Ir=()=>{var qr;Rr||(Rr=!0,clearTimeout(Pr),(qr=this.iframeRef)==null||qr.removeEventListener("load",Fr))},Fr=()=>{Ir(),Cr()};Pr=setTimeout(()=>{Ir(),kr(new Error("Iframe reload timeout after 10s"))},1e4),this.iframeRef.addEventListener("load",Fr);try{this.iframeRef.contentWindow.location.reload()}catch(qr){Ir(),kr(qr)}})}}class StaticIframeAdapter extends IframeDisplayAdapter{}const STATUS_CIRCLE_BG={pending:"bg-primary",complete:"bg-accent-success",error:"bg-accent-error"},BUBBLE_W=36,BUBBLE_H=28,CARET_SIZE=10,CARET_HALF=CARET_SIZE/2,TIP_X=BUBBLE_W/2,TOTAL_H=BUBBLE_H+CARET_HALF,POPOVER_OFFSET_Y$1=8,ABOVE_THRESHOLD_PCT=.65,PREVIEW_W=200,VIEWPORT_PAD$1=8,clampLeft=($,Cr)=>{const kr=$-Cr/2,Pr=window.innerWidth-Cr-VIEWPORT_PAD$1;return Math.max(VIEWPORT_PAD$1,Math.min(kr,Pr))},CommentMarker=({comment:$,index:Cr,position:kr,onEdit:Pr,onHover:Rr,onHoverEnd:Ir})=>{var ya;const[Fr,Lr]=reactExports.useState(!1),qr=reactExports.useCallback(ba=>{ba.stopPropagation(),Pr($.id)},[$.id,Pr]),fa=kr.y/window.innerHeight>ABOVE_THRESHOLD_PCT,pa=$.instruction,xa=clampLeft(kr.x,PREVIEW_W)-(kr.x-TIP_X);return jsxRuntimeExports.jsxs("div",{className:"fixed",style:{top:fa?kr.y:kr.y-TOTAL_H,left:kr.x-TIP_X,zIndex:Fr?55:36},onMouseEnter:()=>{Lr(!0),Rr==null||Rr()},onMouseLeave:()=>{Lr(!1),Ir==null||Ir()},children:[jsxRuntimeExports.jsxs("div",{className:"relative cursor-pointer",style:{filter:"drop-shadow(0 1px 3px rgba(0,0,0,0.2))"},onClick:qr,children:[jsxRuntimeExports.jsx("div",{className:"absolute bg-main",style:{width:CARET_SIZE,height:CARET_SIZE,left:(BUBBLE_W-CARET_SIZE)/2,top:fa?-CARET_HALF:BUBBLE_H-CARET_HALF,transform:"rotate(45deg)",borderRadius:3}}),jsxRuntimeExports.jsx("div",{className:"relative flex items-center justify-center rounded-lg bg-main",style:{width:BUBBLE_W,height:BUBBLE_H},children:jsxRuntimeExports.jsx("div",{className:`flex h-5 w-5 items-center justify-center rounded-full ${STATUS_CIRCLE_BG[$.status]}`,children:jsxRuntimeExports.jsx("span",{className:"text-[10px] font-bold leading-none text-white",children:Cr+1})})})]}),jsxRuntimeExports.jsx(AnimatePresence,{children:Fr&&(pa||((ya=$.images)==null?void 0:ya.length))&&jsxRuntimeExports.jsxs(motion.div,{className:"absolute rounded-lg bg-main px-3 py-2 shadow-lg",style:{left:xa,top:fa?-POPOVER_OFFSET_Y$1:TOTAL_H+POPOVER_OFFSET_Y$1,transformOrigin:fa?"bottom center":"top center",width:PREVIEW_W},initial:{scale:.96,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.96,opacity:0,transition:{duration:.06,ease:[.55,0,1,.45]}},transition:{duration:.08,ease:[.165,.84,.44,1]},children:[pa?jsxRuntimeExports.jsx("p",{className:"line-clamp-2 text-left text-xs leading-snug text-content",children:pa}):null,$.images&&$.images.length>0?jsxRuntimeExports.jsx("div",{className:`flex flex-wrap justify-center gap-1 ${pa?"mt-1.5":""}`,children:$.images.map((ba,Aa)=>jsxRuntimeExports.jsx("img",{src:ba,alt:`Reference ${Aa+1}`,className:"max-h-10 rounded border border-divider"},Aa))}):null]})})]})},CommentMarkerLayer=({onEditComment:$})=>{const[Cr,kr]=useAtom(commentsAtom),Pr=useAtomValue(iframeRefAtom),[Rr,Ir]=reactExports.useState(null),[,Fr]=reactExports.useState(0),Lr=reactExports.useRef(null),qr=reactExports.useCallback(()=>Fr(Sa=>Sa+1),[]);reactExports.useEffect(()=>{const Sa=Pr==null?void 0:Pr.current;if(!Sa)return;let Ca=null;const Ta=()=>{const ja=getIframeDocument(Sa);!ja||ja===Ca||(Ca&&Ca.removeEventListener("scroll",qr,!0),Ca=ja,ja.addEventListener("scroll",qr,!0))},Ia=()=>{Ta(),qr()};Ta(),Sa.addEventListener("load",Ia),window.addEventListener("resize",qr);const Ra=new ResizeObserver(qr);return Ra.observe(Sa),Lr.current=()=>{Sa.removeEventListener("load",Ia),window.removeEventListener("resize",qr),Ra.disconnect(),Ca&&Ca.removeEventListener("scroll",qr,!0)},()=>{var ja;return(ja=Lr.current)==null?void 0:ja.call(Lr)}},[Pr,qr]);const fa=reactExports.useCallback(Sa=>{const Ca=Pr==null?void 0:Pr.current;Ca&&restoreCommentPreviewBaselines(Ca,Cr.values()),kr(Ta=>{const Ia=new Map(Ta);return Ia.delete(Sa),Ia})},[kr,Pr,Cr]),pa=Array.from(Cr.values());if(pa.length===0)return null;const ga=(Pr==null?void 0:Pr.current)??null,xa=ga?getIframeDocument(ga):null,ya=(ga==null?void 0:ga.getBoundingClientRect())??null,ba=(Sa,Ca,Ta)=>{if(!xa||!ya)return null;const Ia=resolveElementFromContext(xa,Sa);if(!Ia)return null;const Ra=Ia.getBoundingClientRect();return Ra.bottom<0||Ra.top>ya.height?null:{x:ya.left+Ra.left+Ca*Ra.width,y:ya.top+Ra.top+Ta*Ra.height}},Aa=Sa=>{if(!Sa.dragBox||!ya||!xa)return null;const Ca=resolveElementFromContext(xa,Sa.elementContext);if(!Ca)return null;const Ta=Ca.getBoundingClientRect(),{leftPct:Ia,topPct:Ra,widthPct:ja,heightPct:Oa}=Sa.dragBox;return{left:ya.left+Ta.left+Ia*Ta.width,top:ya.top+Ta.top+Ra*Ta.height,width:ja*Ta.width,height:Oa*Ta.height}},ka=Rr!=null?Cr.get(Rr):void 0,Ea=ka?Aa(ka):null;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[pa.map((Sa,Ca)=>{const Ta=ba(Sa.elementContext,Sa.pin.elementXPct,Sa.pin.elementYPct);return Ta?jsxRuntimeExports.jsx(CommentMarker,{comment:Sa,index:Ca,position:Ta,onDismiss:fa,onEdit:$,onHover:()=>Ir(Sa.id),onHoverEnd:()=>Ir(null)},Sa.id):null}),Ea&&jsxRuntimeExports.jsx("div",{"data-comment-hover-overlay":"true",style:{position:"fixed",pointerEvents:"none",zIndex:45,border:"1px dashed var(--color-primary, #FF3300)",background:"rgba(255, 51, 0, 0.08)",borderRadius:2,boxSizing:"border-box",left:Ea.left,top:Ea.top,width:Ea.width,height:Ea.height}})]})},intersectWithIframeViewport=($,Cr,kr)=>{const Pr=Math.max(0,$.left),Rr=Math.max(0,$.top),Ir=Math.min(Cr,$.right),Fr=Math.min(kr,$.bottom),Lr=Ir-Pr,qr=Fr-Rr;return Lr<=0||qr<=0?null:{left:Pr,top:Rr,right:Ir,bottom:Fr,width:Lr,height:qr}},BAR_HEIGHT=36,BAR_GAP=8,BAR_WIDTH=220,CONTROL_MARGIN=8,ORIGINAL_VARIANT_LABEL="Original",SPARKLE_FRAMES=["⡡⠊⢔⠡","⠊⡰⡡⡘","⢔⢅⠈⢢","⡁⢂⠆⡍","⢔⠨⢑⢐","⠨⡑⡠⠊"],SPARKLE_INTERVAL=150,clampToViewport=($,Cr,kr)=>Cr>kr?Cr:Math.min(Math.max($,Cr),kr),resolveOverlayPosition=($,Cr,kr)=>{const Pr=Cr.top+$.top,Rr=Cr.left+$.left+$.width/2,Ir=window.innerWidth-kr-CONTROL_MARGIN,Fr=clampToViewport(Rr-kr/2,CONTROL_MARGIN,Ir),Lr=window.innerHeight-BAR_HEIGHT-CONTROL_MARGIN;return{top:clampToViewport(Pr-BAR_HEIGHT-BAR_GAP,CONTROL_MARGIN,Lr),left:Fr}},CommentCarouselLayer=()=>{const $=usePostHog(),[Cr,kr]=useAtom(commentsAtom),Pr=useAtomValue(globalChangeTrackerAtom),Rr=useAtomValue(iframeRefAtom),Ir=useAtomValue(activeCarouselCommentIdAtom),Fr=useSetAtom(activeCarouselCommentIdAtom),Lr=useAtomValue(editingCommentIdAtom),[qr,fa]=reactExports.useState(0),[pa,ga]=reactExports.useState(null),xa=reactExports.useRef(null),ya=reactExports.useRef(!1),[ba,Aa]=reactExports.useState(0),ka=reactExports.useRef(Cr);ka.current=Cr;const[Ea,Sa]=reactExports.useState(0),Ca=reactExports.useRef(new Map),Ta=reactExports.useCallback(()=>{ya.current||(ya.current=!0,requestAnimationFrame(()=>{ya.current=!1,fa(rl=>rl+1)}))},[]),Ia=reactExports.useCallback(rl=>{ga(rl),xa.current!==null&&window.clearTimeout(xa.current),xa.current=window.setTimeout(()=>{ga(null)},160)},[]),Ra=reactExports.useCallback((rl,xl)=>{kr(El=>{const Cl=El.get(rl);if(!(Cl!=null&&Cl.styleVariants)||Cl.styleVariants.length===0)return El;const Ml=Cl.styleVariants.length+1,hl=Math.min(Math.max(Cl.selectedVariantIndex??0,0),Ml-1),yl=((hl+xl)%Ml+Ml)%Ml;if(yl===hl)return El;$==null||$.capture("comment_carousel_navigate",{variant_index:yl,variant_count:Cl.styleVariants.length});const Tl=new Map(El);return Tl.set(rl,{...Cl,selectedVariantIndex:yl,finalizedVariant:void 0}),Tl}),Ia(rl)},[$,Ia,kr]),ja=reactExports.useCallback(rl=>{const xl=ka.current.get(rl);if(!(xl!=null&&xl.styleVariants)||xl.styleVariants.length===0)return;const El=xl.styleVariants.length+1,Cl=Math.min(Math.max(xl.selectedVariantIndex??0,0),El-1);$==null||$.capture("comment_variant_apply_clicked",{variant_index:Cl,variant_count:xl.styleVariants.length});const Ml=Cl===0?void 0:xl.styleVariants[Cl-1];kr(hl=>{const yl=hl.get(rl);if(!yl)return hl;const Tl=new Map(hl);return Tl.set(rl,{...yl,finalizedVariant:Ml,styleVariants:void 0,selectedVariantIndex:void 0,variantGenerationStatus:void 0,variantGenerationError:void 0}),Tl}),Fr(null)},[$,kr]);reactExports.useEffect(()=>{const rl=Rr==null?void 0:Rr.current;if(!rl)return;let xl=null;const El=()=>{const Ml=getIframeDocument(rl);!Ml||Ml===xl||(xl&&xl.removeEventListener("scroll",Ta,!0),xl=Ml,Ml.addEventListener("scroll",Ta,!0))},Cl=()=>{El(),Ta()};return El(),rl.addEventListener("load",Cl),window.addEventListener("resize",Ta),()=>{rl.removeEventListener("load",Cl),window.removeEventListener("resize",Ta),xl&&xl.removeEventListener("scroll",Ta,!0)}},[Rr,Ta]),reactExports.useEffect(()=>Pr.onChange(()=>Aa(xl=>xl+1)),[Pr]),reactExports.useEffect(()=>{var hl;const rl=Rr==null?void 0:Rr.current,xl=rl?getIframeDocument(rl):null;if(!xl)return;const El=Pr.getStyleChanges(),Cl=new Map;for(const yl of El){const Tl=yl.elementId.xpath,jl=Cl.get(Tl);if(jl){jl.push(yl);continue}Cl.set(Tl,[yl])}const Ml=[];for(const yl of Cr.values()){const Tl=yl.styleVariants;if(!Tl||Tl.length===0)continue;const jl=getStylableElementFromContext(xl,yl.elementContext);if(!jl)continue;let Dl=yl.previewBaselineStyle;if(Dl===void 0){Dl=jl.getAttribute("style")??"";const vl=xl.defaultView,Pl=jl.getBoundingClientRect();Ca.current.set(yl.id,{pageLeft:((vl==null?void 0:vl.scrollX)??0)+Pl.left,pageTop:((vl==null?void 0:vl.scrollY)??0)+Pl.top,width:Pl.width,height:Pl.height}),Ml.push({id:yl.id,baseline:Dl})}jl.setAttribute("style",Dl);const Bl=Tl.length+1,$l=Math.min(Math.max(yl.selectedVariantIndex??0,0),Bl-1);if($l>0){const vl=((hl=Tl[$l-1])==null?void 0:hl.inlineStyles)??{};for(const[Pl,Hl]of Object.entries(vl))jl.style.setProperty(toKebabProperty(Pl),Hl)}const fl=Cl.get(yl.elementContext.xpath)??[];for(const vl of fl)jl.style.setProperty(toKebabProperty(String(vl.property)),vl.newValue)}Ml.length>0&&kr(yl=>{let Tl=null;for(const{id:jl,baseline:Dl}of Ml){const Bl=yl.get(jl);!Bl||Bl.previewBaselineStyle!==void 0||(Tl||(Tl=new Map(yl)),Tl.set(jl,{...Bl,previewBaselineStyle:Dl}))}return Tl??yl})},[Cr,Rr,kr,Pr,ba]),reactExports.useEffect(()=>{if(!Ir)return;const rl=xl=>{var hl;if(xl.key!=="ArrowLeft"&&xl.key!=="ArrowRight"&&xl.key!=="Enter")return;const El=(hl=xl.target)==null?void 0:hl.tagName;if(El==="INPUT"||El==="TEXTAREA"||El==="SELECT")return;const Cl=ka.current.get(Ir);if(!(Cl!=null&&Cl.styleVariants)||Cl.styleVariants.length===0)return;if(xl.preventDefault(),xl.key==="Enter"){ja(Ir);return}const Ml=xl.key==="ArrowLeft"?-1:1;Ra(Ir,Ml)};return window.addEventListener("keydown",rl,{capture:!0}),()=>window.removeEventListener("keydown",rl,{capture:!0})},[Ir,Ra,ja]),reactExports.useEffect(()=>{const rl=Ir?ka.current.get(Ir):void 0;if(!((rl==null?void 0:rl.variantGenerationStatus)==="generating"&&(!rl.styleVariants||rl.styleVariants.length===0)))return;const El=window.setInterval(()=>{Sa(Cl=>(Cl+1)%SPARKLE_FRAMES.length)},SPARKLE_INTERVAL);return()=>window.clearInterval(El)}),reactExports.useEffect(()=>()=>{xa.current!==null&&window.clearTimeout(xa.current)},[]);const Oa=Ir?Cr.get(Ir):void 0;if(!Oa)return null;const La=(Rr==null?void 0:Rr.current)??null;if(!La)return null;const Ha=La.getBoundingClientRect(),Wa=getIframeDocument(La);if(!Wa)return null;const Ja=getStylableElementFromContext(Wa,Oa.elementContext);if(!Ja)return null;const Ya=Ja.getBoundingClientRect(),Za=intersectWithIframeViewport(Ya,La.clientWidth,La.clientHeight);if(!Za)return null;const Qa=Oa.variantGenerationStatus==="generating"&&(!Oa.styleVariants||Oa.styleVariants.length===0),Na=Ca.current.get(Oa.id),Ka=Wa.defaultView,Fa=(Ka==null?void 0:Ka.scrollX)??0,Va=(Ka==null?void 0:Ka.scrollY)??0,Da=Na?{left:Na.pageLeft-Fa,top:Na.pageTop-Va,width:Na.width,height:Na.height}:Za,{dragBox:Ba}=Oa;let Ga,Ua,qa,$a;if(Ba)Ga=Ha.left+Ya.left+Ba.leftPct*Ya.width,Ua=Ha.top+Ya.top+Ba.topPct*Ya.height,qa=Ba.widthPct*Ya.width,$a=Ba.heightPct*Ya.height;else{const rl=Qa?Za:Da;Ga=Ha.left+rl.left,Ua=Ha.top+rl.top,qa=rl.width,$a=rl.height}if(Qa)return jsxRuntimeExports.jsx("div",{className:"pointer-events-none fixed z-[48]",style:{left:Ga,top:Ua,width:qa,height:$a,border:"1px dashed var(--color-primary-border, #ff6b35)",background:"rgba(255, 107, 53, 0.06)",borderRadius:2,boxSizing:"border-box"},children:jsxRuntimeExports.jsx("div",{className:"absolute left-0 top-0",style:{transform:"translateY(-100%)"},children:jsxRuntimeExports.jsx("span",{className:"font-mono text-sm leading-none text-primary",children:SPARKLE_FRAMES[Ea]})})});const tl=Oa.styleVariants;if(!tl||tl.length===0)return null;const ll=tl.length+1,ol=Math.min(Math.max(Oa.selectedVariantIndex??0,0),ll-1),_a=ol===0?ORIGINAL_VARIANT_LABEL:tl[ol-1].label,{top:nl,left:il}=resolveOverlayPosition(Da,Ha,BAR_WIDTH),ul=pa===Oa.id,sl=Oa.id;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Lr!==sl?jsxRuntimeExports.jsx("div",{className:"pointer-events-none fixed z-[47]",style:{left:Ga,top:Ua,width:qa,height:$a,border:"1px dashed var(--color-primary-border, #ff6b35)",background:"rgba(255, 107, 53, 0.08)",borderRadius:2,boxSizing:"border-box"}}):null,jsxRuntimeExports.jsxs(motion.div,{"data-rivet-carousel-pill":!0,className:"pointer-events-none fixed z-[48] flex items-center gap-1 rounded-lg border border-primary-border bg-main px-1 py-1 shadow-lg",style:{top:nl,left:il,width:BAR_WIDTH},initial:{opacity:0,y:-6},animate:{opacity:1,y:0,scale:ul?.985:1},transition:{duration:.16},onClick:rl=>rl.stopPropagation(),onKeyDown:rl=>{if(rl.key==="ArrowLeft"){rl.preventDefault(),Ra(sl,-1);return}if(rl.key==="ArrowRight"){rl.preventDefault(),Ra(sl,1);return}(rl.key==="Enter"||rl.key===" ")&&(rl.preventDefault(),ja(sl))},children:[jsxRuntimeExports.jsx("button",{type:"button",className:"pointer-events-auto flex h-6 w-6 shrink-0 items-center justify-center rounded text-content-muted hover:text-content disabled:opacity-50","aria-label":"Previous variation",onClick:rl=>{rl.stopPropagation(),Ra(sl,-1)},disabled:ul,children:jsxRuntimeExports.jsx(s$9,{className:"h-3.5 w-3.5",weight:"bold"})}),jsxRuntimeExports.jsx("div",{className:"min-w-0 flex-1 overflow-hidden",children:jsxRuntimeExports.jsx(AnimatePresence,{mode:"wait",initial:!1,children:jsxRuntimeExports.jsx(motion.span,{className:"block min-w-0 truncate text-xs font-medium text-content",initial:{opacity:0,y:4},animate:{opacity:ul?.7:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.14},children:_a},`overlay-variant-label-${sl}-${ol}`)})}),jsxRuntimeExports.jsx("button",{type:"button",className:"pointer-events-auto flex h-6 w-6 shrink-0 items-center justify-center rounded text-content-muted hover:text-content","aria-label":"Apply this variant",onClick:rl=>{rl.stopPropagation(),ja(sl)},children:jsxRuntimeExports.jsx(n$7,{className:"h-3.5 w-3.5",weight:"bold"})}),jsxRuntimeExports.jsx("button",{type:"button",className:"pointer-events-auto flex h-6 w-6 shrink-0 items-center justify-center rounded text-content-muted hover:text-content disabled:opacity-50","aria-label":"Next variation",onClick:rl=>{rl.stopPropagation(),Ra(sl,1)},disabled:ul,children:jsxRuntimeExports.jsx(s$8,{className:"h-3.5 w-3.5",weight:"bold"})})]})]})},MIN_VARIANT_COUNT=2,MAX_VARIANT_COUNT=5,clampVariantCount=$=>Math.min(Math.max($,MIN_VARIANT_COUNT),MAX_VARIANT_COUNT),useCommentVariantGeneration=()=>{const $=useSetAtom(commentsAtom),Cr=usePostHog();return{generateVariantsForComment:reactExports.useCallback(async({commentId:Pr,instruction:Rr,elementContext:Ir,requestedVariantCount:Fr})=>{const Lr=clampVariantCount(Fr);$(qr=>{const fa=qr.get(Pr);if(!fa)return qr;const pa=new Map(qr);return pa.set(Pr,{...fa,variantGenerationStatus:"generating",variantGenerationError:void 0,requestedVariantCount:Lr,styleVariants:void 0,selectedVariantIndex:void 0,finalizedVariant:void 0}),pa}),Cr==null||Cr.capture("comment_variations_generate_started",{instruction_length:Rr.length,variant_count:Lr});try{const qr=await fetch("/api/design/comment-variations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({instruction:Rr,variantCount:Lr,element:Ir})}),fa=await qr.json().catch(()=>({}));if(!qr.ok)throw new Error(typeof fa.error=="string"?fa.error:"Could not generate variations");const pa=fa.variants;if(!Array.isArray(pa)||pa.length!==Lr)throw new Error("Invalid variation response");const ga=pa;$(xa=>{const ya=xa.get(Pr);if(!ya)return xa;const ba=0,Aa=ga.length+1,ka=typeof ya.selectedVariantIndex=="number"?Math.min(Math.max(ya.selectedVariantIndex,0),Aa-1):ba,Ea=new Map(xa);return Ea.set(Pr,{...ya,styleVariants:ga,selectedVariantIndex:ka,variantGenerationStatus:"idle",variantGenerationError:void 0,requestedVariantCount:Lr,finalizedVariant:void 0}),Ea}),Cr==null||Cr.capture("comment_variations_generate_completed",{variant_count:ga.length})}catch(qr){const fa=qr instanceof Error?qr.message:"Could not generate variations";$(pa=>{const ga=pa.get(Pr);if(!ga)return pa;const xa=new Map(pa);return xa.set(Pr,{...ga,variantGenerationStatus:void 0,variantGenerationError:void 0,requestedVariantCount:void 0,styleVariants:void 0,selectedVariantIndex:void 0,finalizedVariant:void 0}),xa}),Cr==null||Cr.capture("comment_variations_generate_failed",{error_message:fa})}},[Cr,$])}},POPOVER_OFFSET_Y=8,POPOVER_W=320,VIEWPORT_PAD=8,DEFAULT_VARIANT_COUNT=3,IFRAME_ABOVE_THRESHOLD_PCT=.65,CommentPopover=({elementContext:$,pin:Cr,dragBox:kr,position:Pr,onClose:Rr,existingCommentId:Ir,isMCPSession:Fr=!1,onInputChange:Lr,shake:qr})=>{var ol;const fa=usePostHog(),pa=useAnimationControls(),[ga,xa]=useAtom(commentsAtom),ya=useAtomValue(iframeRefAtom),Aa=useAtomValue(featureFlagsAtom).variants.isEnabled,ka=useSetAtom(activeCarouselCommentIdAtom),{generateVariantsForComment:Ea}=useCommentVariantGeneration(),Sa=Ir?ga.get(Ir):void 0,Ca=(Sa==null?void 0:Sa.instruction)??"",[Ta,Ia]=reactExports.useState(Ca),[Ra,ja]=reactExports.useState((Sa==null?void 0:Sa.images)??[]),Oa=reactExports.useRef(null),La=reactExports.useRef(null);reactExports.useEffect(()=>{const _a=setTimeout(()=>{const nl=Oa.current;nl&&(nl.focus(),nl.selectionStart=nl.selectionEnd=nl.value.length)},150);return()=>clearTimeout(_a)},[]);const Ha=reactExports.useRef(qr);reactExports.useEffect(()=>{qr!==Ha.current&&pa.start({x:[0,-5,5,-4,4,-2,2,0],y:[0,1.5,-1.5,1,-1,.5,-.5,0],transition:{duration:.45,ease:"easeInOut"}})},[qr,pa]);const Wa=Ta.trim()!==Ca.trim()&&Ta.trim()!==""||Ra.length!==(((ol=Sa==null?void 0:Sa.images)==null?void 0:ol.length)??0),Ja=Ir?Wa:Ta.trim()!=="",Ya=reactExports.useCallback(_a=>{Rr(_a)},[Rr]),Za=reactExports.useCallback(_a=>{_a.style.height="auto",_a.style.height=`${_a.scrollHeight}px`},[]),Qa=reactExports.useCallback(_a=>{compressImage(_a).then(nl=>{ja(il=>[...il,nl])}).catch(()=>{console.warn("[CommentPopover] Failed to process image:",_a.name)})},[]),Na=reactExports.useCallback(_a=>{ja(nl=>[...nl,_a]),Lr==null||Lr(!0)},[Lr]),{isDragOver:Ka,dropHandlers:Fa}=useImageDrop(Na),Va=_a=>{const nl=_a.target.files;if(!nl)return;let il=!1;for(const ul of Array.from(nl))ul.type.startsWith("image/")&&(Qa(ul),il=!0);La.current&&(La.current.value=""),il&&(Lr==null||Lr(!0))},Da=_a=>{var il;const nl=(il=_a.clipboardData)==null?void 0:il.items;if(nl){for(const ul of Array.from(nl))if(ul.type.startsWith("image/")){_a.preventDefault();const sl=ul.getAsFile();sl&&(Qa(sl),Lr==null||Lr(!0))}}},Ba=_a=>{const nl=Ra.filter((il,ul)=>ul!==_a);ja(nl),Lr==null||Lr(Ta.trim()!==""||nl.length>0)},Ga=reactExports.useCallback(_a=>{const nl=Ta.trim();if(!nl)return;const il=(_a==null?void 0:_a.forceGenerateVariants)===!0&&!Fr,ul=il?{styleVariants:void 0,selectedVariantIndex:void 0,finalizedVariant:void 0,variantGenerationStatus:"generating",variantGenerationError:void 0,requestedVariantCount:DEFAULT_VARIANT_COUNT}:{};let sl;if(Ir)sl=Ir,xa(rl=>{const xl=rl.get(Ir);if(!xl)return rl;const El=new Map(rl);return El.set(Ir,{...xl,instruction:nl,images:Ra.length>0?Ra:void 0,...ul}),El}),fa==null||fa.capture("comment_edited",{instruction_length:nl.length,image_count:Ra.length,has_variants:il});else{const rl=crypto.randomUUID();sl=rl;const xl={id:rl,elementContext:$,pin:Cr,dragBox:kr,instruction:nl,images:Ra.length>0?Ra:void 0,...ul,status:"pending"};xa(El=>{const Cl=new Map(El);return Cl.set(rl,xl),Cl}),fa==null||fa.capture("comment_added",{instruction_length:nl.length,image_count:Ra.length,has_variants:il})}Ya({preserveSelection:!0}),il&&(ka(sl),Ea({commentId:sl,instruction:nl,elementContext:$,requestedVariantCount:DEFAULT_VARIANT_COUNT}))},[Ta,Ra,Ir,$,Cr,kr,xa,fa,Fr,Ea,Ya,ka]),Ua=reactExports.useCallback(()=>{if(Ir){const _a=(ya==null?void 0:ya.current)??null;_a&&restoreCommentPreviewBaselines(_a,ga.values()),xa(nl=>{const il=new Map(nl);return il.delete(Ir),il}),fa==null||fa.capture("comment_deleted")}Ya()},[Ir,ga,ya,xa,Ya,fa]),qa=reactExports.useCallback(_a=>{_a.key==="Enter"&&(_a.metaKey||_a.ctrlKey)&&(_a.preventDefault(),_a.nativeEvent.stopImmediatePropagation(),Ga()),_a.key==="Escape"&&(_a.nativeEvent.stopImmediatePropagation(),Ya({preserveSelection:!0}))},[Ga,Ya]),$a=window.innerHeight,tl=Pr.y/$a>IFRAME_ABOVE_THRESHOLD_PCT,ll=Ir?"Save":"Add";return jsxRuntimeExports.jsx("div",{className:"absolute z-comment-preview cursor-auto",style:{top:tl?Pr.y-POPOVER_OFFSET_Y:Pr.y+POPOVER_OFFSET_Y,left:Math.max(VIEWPORT_PAD,Math.min(Pr.x-POPOVER_W/2,window.innerWidth-POPOVER_W-VIEWPORT_PAD)),transform:tl?"translateY(-100%)":void 0},onClick:_a=>_a.stopPropagation(),children:jsxRuntimeExports.jsx(motion.div,{animate:pa,children:jsxRuntimeExports.jsxs(motion.div,{className:"relative flex w-80 flex-col gap-2 rounded-xl bg-main p-4 shadow-2xl",style:{transformOrigin:"center 24px"},initial:{scale:.82,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.82,opacity:0,transition:{duration:.1,ease:[.55,0,1,.45]}},transition:{type:"spring",stiffness:500,damping:28,mass:.8},...Fa,children:[Ka?jsxRuntimeExports.jsx("div",{className:"pointer-events-none absolute inset-0 z-10 flex items-center justify-center rounded-xl border-2 border-dashed border-primary bg-primary/10",children:jsxRuntimeExports.jsx("span",{className:"text-sm font-medium text-content",children:"Drop image here"})}):null,jsxRuntimeExports.jsx("textarea",{ref:_a=>{Oa.current=_a,_a&&Za(_a)},value:Ta,onChange:_a=>{const nl=_a.target.value;Ia(_a.target.value),Za(_a.target),Lr==null||Lr(nl.trim()!==""||Ra.length>0)},onKeyDown:qa,onPaste:Da,placeholder:"What should change?",rows:3,style:{maxHeight:"9rem",overflowY:"auto"},className:"w-full resize-none rounded-lg border border-divider bg-main-light p-3 text-sm text-content outline-none transition-colors duration-100 placeholder:text-content-subtle focus:border-primary focus:ring-1 focus:ring-primary/30"}),Ra.length>0?jsxRuntimeExports.jsx("div",{className:"max-h-40 overflow-y-auto rounded",children:jsxRuntimeExports.jsx("div",{className:`grid gap-1.5 ${Ra.length===1?"grid-cols-1":"grid-cols-2"}`,children:Ra.map((_a,nl)=>jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx("img",{src:_a,alt:`Reference ${nl+1}`,className:`w-full rounded border border-divider object-cover ${Ra.length===1?"max-h-32":"aspect-[4/3]"}`}),jsxRuntimeExports.jsx("button",{onClick:()=>Ba(nl),className:"absolute right-1 top-1 rounded-full bg-red-500/80 p-0.5 text-white backdrop-blur-sm hover:bg-red-600",children:jsxRuntimeExports.jsx(n$1,{className:"h-2.5 w-2.5",weight:"bold"})})]},nl))})}):null,jsxRuntimeExports.jsx("input",{ref:La,type:"file",accept:"image/*",multiple:!0,onChange:Va,className:"hidden"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[Ir?jsxRuntimeExports.jsx("button",{type:"button",onClick:Ua,className:"p-1 text-content-subtle transition-colors hover:text-accent-error",title:"Delete comment",children:jsxRuntimeExports.jsx(n$2,{className:"h-4 w-4",weight:"bold"})}):null,jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>{var _a;return(_a=La.current)==null?void 0:_a.click()},className:"p-1 text-content-subtle transition-colors hover:text-content",title:"Attach reference image",children:jsxRuntimeExports.jsx(I,{className:"h-4 w-4",weight:"bold"})})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>Ya(),className:"px-2 py-1.5 text-sm text-content-muted transition-colors hover:text-content",children:"Cancel"}),jsxRuntimeExports.jsx("button",{onClick:()=>Ga(),disabled:!Ja,className:"rounded-full bg-primary px-5 py-1.5 text-sm font-medium text-white transition-colors hover:bg-primary-hover disabled:opacity-50",children:ll}),!Fr&&Aa?jsxRuntimeExports.jsx("button",{type:"button","aria-label":"Generate 3 variants",onClick:()=>Ga({forceGenerateVariants:!0}),disabled:!Ja,className:"flex items-center justify-center rounded-full bg-primary px-3 py-1.5 text-sm font-medium text-white transition-colors hover:bg-primary-hover disabled:opacity-50",title:"Generate 3 variants",children:jsxRuntimeExports.jsx(s$1,{className:"h-5 w-5",weight:"bold"})}):null]})]})]})})})},log$7=createLogger("usePreviewUpstreamHealth"),DEFAULT_PROBE_MS_WHILE_DOWN=500,DEFAULT_PROBE_MS_WHILE_UP=4e3,DEFAULT_FIRST_UNREACHABLE_AFTER_MS=15e3,usePreviewUpstreamHealth=($,Cr={})=>{const kr=Cr.probeMsWhileDown??DEFAULT_PROBE_MS_WHILE_DOWN,Pr=Cr.probeMsWhileUp??DEFAULT_PROBE_MS_WHILE_UP,Rr=Cr.firstUnreachableCaptureAfterMs??DEFAULT_FIRST_UNREACHABLE_AFTER_MS,[Ir,Fr]=reactExports.useState($==="static"),[Lr,qr]=reactExports.useState(0),[fa,pa]=reactExports.useState(null),[ga,xa]=reactExports.useState(0),[ya,ba]=reactExports.useState(!1),[Aa,ka]=reactExports.useState(!1),[Ea,Sa]=reactExports.useState($==="static"?null:"upstream_unreachable");return reactExports.useEffect(()=>{if($==="static"){Fr(!0),pa(null),xa(0),ba(!1),ka(!0),Sa(null);return}let Ca=!0;const Ta=Date.now();pa(Ta),xa(0),ba(!1),Fr(!1),ka(!1),Sa("upstream_unreachable");const Ia={current:!1},Ra={current:!1},ja={current:!1},Oa={current:null},La={current:!1};let Ha=null;const Wa=()=>{ja.current||(ja.current=!0,Ca&&ka(!0))},Ja=()=>{Ha!==null&&(clearTimeout(Ha),Ha=null)},Ya=(Qa,Na)=>{Ja(),Ha=setTimeout(Na,Qa)},Za=async()=>{if(!Ca)return;xa(Va=>Va+1);let Qa=!1,Na="upstream_unreachable";try{Qa=(await fetch("/")).status!==502,Qa||(Na="upstream_unreachable")}catch{Na="rivet_unreachable"}if(!Ca)return;if(Wa(),Qa){const Va=!La.current;La.current=!0,Fr(!0),Sa(null),Oa.current=null,Ra.current=!1,ba(!1),Ia.current?Va&&(va==null||va.capture("preview_upstream_restored",{framework:$})):(Ia.current=!0,va==null||va.capture("preview_dev_server_ready",{framework:$,ready_after_ms:Date.now()-Ta})),Ya(Pr,Za);return}const Ka=La.current;La.current=!1,Fr(!1),Sa(Na),Oa.current===null&&(Oa.current=Date.now(),Ra.current=!1,ba(!1)),Ka&&(va==null||va.capture("preview_upstream_lost",{framework:$}),qr(Va=>Va+1),log$7.warn("Preview upstream became unavailable after it was ready"));const Fa=Date.now()-Oa.current;Fa>=Rr&&!Ra.current&&(Ra.current=!0,ba(!0),va==null||va.capture("preview_dev_server_unreachable",{framework:$,elapsed_ms:Fa}),log$7.warn("Dev server did not become ready within timeout window")),Ya(kr,Za)};return Ya(0,Za),()=>{Ca=!1,Ja()}},[$,kr,Pr,Rr]),{isUpstreamReady:Ir,iframeRemountKey:Lr,probeStartedAt:fa,probeAttemptCount:ga,isFirstUnreachableWindowExceeded:ya,initialProbeComplete:Aa,unavailableReason:Ea}},log$6=createLogger("IframePreview"),IframePreview=({isLoading:$=!1,isInteractionDisabled:Cr=!1,framework:kr,userPort:Pr,activeDemoSessionId:Rr=null,holdPreviewNavigation:Ir=!1})=>{const Fr=useSetAtom(iframeRefAtom),Lr=useSetAtom(displayAdapterAtom),qr=useAtomValue(modeAtom),fa=useSetAtom(changeModeAtom),pa=useAtomValue(commentsAtom),ga=useSetAtom(editingCommentIdAtom),xa=useSetAtom(activeCarouselCommentIdAtom),ya=useAtomValue(isMCPSessionAtom),ba=useSetAtom(isCommentDraftDirtyAtom),Aa=useAtomValue(isEyedropperActiveAtom),ka=useAtomValue(commentShakeAtom),Ea=useAtomValue(panelClickVersionAtom),[Sa,Ca]=reactExports.useState(null),Ta=useAtomValue(textEditingStateAtom),{isUpstreamReady:Ia,iframeRemountKey:Ra,initialProbeComplete:ja}=usePreviewUpstreamHealth(kr),Oa=Rr?`/try/${encodeURIComponent(Rr)}`:"",La=kr==="static"?`${Oa}/static/`:`${Oa}/`,Ha=Ir||!Ia?"about:blank":La,Wa=reactExports.useRef(null),{enterEditMode:Ja}=useInlineTextEdit({iframeRef:Wa}),Ya=useAtomValue(featureFlagsAtom);useElementResize({iframeRef:Wa,enabled:Ya.resize.isEnabled});const[Za,Qa]=reactExports.useState(null),Na=reactExports.useRef(!1),[Ka,Fa]=reactExports.useState(0),Va=reactExports.useCallback(sl=>{Na.current=sl,ba(sl)},[ba]),Da=reactExports.useCallback((sl,rl,xl)=>{if(Na.current){Fa(El=>El+1);return}Va(!1),Fa(0),ga(null),xa(null),Qa({key:crypto.randomUUID(),elementContext:sl,pin:rl,dragBox:xl})},[Va,ga,xa]),Ba=reactExports.useCallback(()=>{if(Na.current){Fa(sl=>sl+1);return}Qa(null),ga(null),Va(!1),Fa(0)},[Va,ga]),Ga=reactExports.useCallback((sl,rl,xl)=>{Ja(sl,rl,xl)},[Ja]),{setupIframe:Ua,clearSelectionState:qa,iframeRef:$a}=useIframeSelection({mode:Cr?"view":qr,isBoxModelVisible:!0,onTextEdit:Ga,onCommentClick:Da,onCommentSelectionClear:Ba}),tl=reactExports.useRef(Ea);reactExports.useEffect(()=>{Ea!==tl.current&&(tl.current=Ea,qr!=="edit"&&(Na.current||(Qa(null),ga(null),Va(!1),qa())))},[Ea,qr,qa,Va,ga]);const ll=reactExports.useCallback(sl=>{Qa(null),ga(null),xa(null),Fa(0),Va(!1),sl!=null&&sl.preserveSelection||qa()},[qa,Va,ga,xa]),ol=reactExports.useCallback(sl=>{const rl=pa.get(sl);rl&&(Va(!1),ga(sl),rl.styleVariants&&rl.styleVariants.length>0&&xa(sl),Qa({key:crypto.randomUUID(),elementContext:rl.elementContext,pin:rl.pin,dragBox:rl.dragBox,existingCommentId:sl}))},[pa,Va,ga,xa]),_a=reactExports.useCallback((sl,rl)=>{const xl=$a.current;if(!xl)return null;const El=xl.contentDocument??null;if(!El)return null;const Cl=resolveElementFromContext(El,sl);if(!Cl)return null;const Ml=xl.getBoundingClientRect(),hl=Cl.getBoundingClientRect();return{x:Ml.left+hl.left+rl.elementXPct*hl.width,y:Ml.top+hl.top+rl.elementYPct*hl.height}},[$a]),[,nl]=reactExports.useState(0),il=reactExports.useCallback(()=>nl(sl=>sl+1),[]);reactExports.useEffect(()=>{const sl=$a.current;if(!Za||!sl)return;const rl=sl.contentDocument;rl&&rl.addEventListener("scroll",il,!0);const xl=new ResizeObserver(il);return xl.observe(sl),sl.addEventListener("load",il),()=>{rl&&rl.removeEventListener("scroll",il,!0),xl.disconnect(),sl.removeEventListener("load",il)}},[Za,$a,il]);const ul=Za?_a(Za.elementContext,Za.pin):null;return reactExports.useEffect(()=>{if(kr!=="static"&&!Ia){Sa&&(Ca(null),Lr(null));return}if($a.current&&!Sa){const sl=kr==="static";console.log(`[IframePreview] Creating ${sl?"Static":""}IframeDisplayAdapter`);const rl=qr==="edit"?"edit":"view",xl=sl?new StaticIframeAdapter($a.current,{mode:rl,isBoxModelVisible:!0}):new IframeDisplayAdapter($a.current,{mode:rl,isBoxModelVisible:!0});xl.initialize(),Ca(xl),Lr(xl)}},[Sa,kr,Ia,qr,$a,Lr]),reactExports.useEffect(()=>()=>{Lr(null)},[Lr]),reactExports.useEffect(()=>{Za&&!Na.current&&qr!=="comment"&&(Qa(null),ga(null),qr==="view"&&qa())},[qr,Za,qa,ga]),reactExports.useEffect(()=>{var rl;if(!((rl=Wa.current)!=null&&rl.parentElement))return;const sl=Wa.current.parentElement.querySelector("#rivet-mouse-capture");if(sl){if(Ta.isEditing||!Ia||Aa){sl.style.pointerEvents="none";return}sl.style.pointerEvents="auto"}},[Ta.isEditing,Ia,Aa]),jsxRuntimeExports.jsxs("div",{className:"relative h-full w-full",children:[Cr?null:jsxRuntimeExports.jsx(CommandBar,{mode:qr,onModeChange:fa,isLoading:$}),!Ia&&ja?jsxRuntimeExports.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-main/90 px-6",children:jsxRuntimeExports.jsxs("div",{role:"alert","aria-live":"polite",className:"flex max-w-sm flex-col items-center gap-5 text-center",children:[jsxRuntimeExports.jsx("h2",{className:"text-3xl font-semibold text-content",children:"Preview isn't connected"}),jsxRuntimeExports.jsx("p",{className:"text-base leading-relaxed text-content-muted",children:"The connection between Rivet and your project is offline. Try restarting Rivet, then click reload below."}),jsxRuntimeExports.jsx("button",{onClick:()=>window.location.reload(),className:"rounded-md bg-primary px-10 py-2.5 text-sm font-medium text-white transition-colors hover:bg-primary-hover",children:"Reload"})]})}):null,jsxRuntimeExports.jsx("iframe",{ref:sl=>{sl&&(Ua(sl),Wa.current=sl,Fr($a))},src:Ha,className:"h-full w-full border-none",title:"Project Preview",sandbox:"allow-scripts allow-same-origin allow-forms allow-popups allow-modals",onLoad:()=>{va==null||va.capture("preview_iframe_loaded",{framework:kr,src:Ha})},onError:()=>{va==null||va.capture("preview_iframe_load_failed",{framework:kr,src:Ha}),log$6.warn("Preview iframe failed to load",{framework:kr,src:Ha})}},Ra),jsxRuntimeExports.jsx(CommentMarkerLayer,{onEditComment:ol}),ya?null:jsxRuntimeExports.jsx(CommentCarouselLayer,{}),(Za==null?void 0:Za.dragBox)&&$a.current&&(()=>{const sl=$a.current,rl=sl.getBoundingClientRect(),xl=sl.contentDocument;if(!xl)return null;const El=resolveElementFromContext(xl,Za.elementContext);if(!El)return null;const Cl=El.getBoundingClientRect(),{leftPct:Ml,topPct:hl,widthPct:yl,heightPct:Tl}=Za.dragBox;return jsxRuntimeExports.jsx("div",{"data-comment-drag-box":"true",style:{position:"fixed",pointerEvents:"none",zIndex:45,border:"1px dashed var(--color-primary-border, #ff6b35)",background:"rgba(255, 107, 53, 0.08)",borderRadius:2,boxSizing:"border-box",left:rl.left+Cl.left+Ml*Cl.width,top:rl.top+Cl.top+hl*Cl.height,width:yl*Cl.width,height:Tl*Cl.height}})})(),Za&&ul&&jsxRuntimeExports.jsx(CommentMarker,{comment:{id:"draft",elementContext:Za.elementContext,pin:Za.pin,instruction:"",status:"pending"},index:Za.existingCommentId?Math.max(0,Array.from(pa.keys()).indexOf(Za.existingCommentId)):pa.size,position:ul,onDismiss:()=>{},onEdit:()=>{}}),jsxRuntimeExports.jsx(AnimatePresence,{children:Za&&ul?jsxRuntimeExports.jsx(CommentPopover,{elementContext:Za.elementContext,pin:Za.pin,dragBox:Za.dragBox,position:ul,onClose:ll,existingCommentId:Za.existingCommentId,isMCPSession:ya,onInputChange:sl=>{Va(sl)},shake:Ka+ka},Za.key):null})]})},Progress=({message:$,isLoading:Cr=!0})=>jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm text-content",children:[Cr?jsxRuntimeExports.jsx(s$6,{className:"h-4 w-4 shrink-0 animate-spin text-primary",weight:"bold"}):null,jsxRuntimeExports.jsx("span",{className:"whitespace-pre-wrap font-sans",children:$})]}),PreviewFrame=({isLoading:$=!1,isInteractionDisabled:Cr=!1,activeDemoSessionId:kr=null,holdHostedTryoutPreviewNavigation:Pr=!1})=>{const{config:Rr,fetchConfig:Ir,isLoading:Fr,error:Lr}=useServerConfig();return reactExports.useEffect(()=>{Ir().catch(qr=>{va==null||va.capture("preview_config_load_failed",{message:qr instanceof Error?qr.message:"unknown_error"})})},[Ir]),Fr?Pr?jsxRuntimeExports.jsx("div",{className:"flex h-full min-h-0 w-full flex-1 bg-main","aria-busy":"true"}):jsxRuntimeExports.jsx("div",{className:"flex h-full w-full items-center justify-center bg-main px-6",children:jsxRuntimeExports.jsx("div",{className:"rounded-lg border border-divider bg-main p-6 shadow-lg",children:jsxRuntimeExports.jsx(Progress,{message:"Loading..."})})}):Lr||!Rr?jsxRuntimeExports.jsx("div",{className:"flex h-full w-full items-center justify-center bg-main px-6",children:jsxRuntimeExports.jsxs("div",{className:"max-w-md rounded-lg border border-divider bg-main-light p-4 text-center shadow-lg",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium text-content",children:"We couldn't load your app preview."}),jsxRuntimeExports.jsx("p",{className:"text-content-subtle mt-2 text-sm",children:Lr||"Missing preview configuration from the server."}),jsxRuntimeExports.jsx("p",{className:"text-content-subtle mt-2 text-sm",children:"If this keeps happening, restart your Rivet session and try again."}),jsxRuntimeExports.jsx("button",{type:"button",className:"mt-4 rounded-md border border-divider px-3 py-1.5 text-xs text-content hover:bg-main/80",onClick:()=>{va==null||va.capture("preview_config_retry_clicked"),Ir().catch(qr=>{va==null||va.capture("preview_config_load_failed",{message:qr instanceof Error?qr.message:"unknown_error"})})},children:"Retry preview"})]})}):jsxRuntimeExports.jsx("div",{className:"relative flex h-full min-h-0 w-full flex-1 flex-col",children:jsxRuntimeExports.jsx(IframePreview,{isLoading:$,isInteractionDisabled:Cr,framework:Rr.framework,userPort:Rr.userPort,activeDemoSessionId:kr,holdPreviewNavigation:Pr})})},log$5=createLogger("SupportTicketModal"),MESSAGE_MAX_LENGTH=5e3,DEFAULT_TICKET_TYPE="feedback",extractValidationMessage=$=>{var Pr;if(!$)return null;const Cr=(Pr=$.formErrors)==null?void 0:Pr[0];if(Cr)return Cr;const kr=$.fieldErrors??{};for(const Rr of Object.values(kr)){const Ir=Rr==null?void 0:Rr[0];if(Ir)return Ir}return null},parseSupportTicketError=async $=>{let Cr;try{Cr=await $.json()}catch{Cr=void 0}if($.status===400){if(typeof(Cr==null?void 0:Cr.details)=="string"&&Cr.details.trim())return Cr.details;if(typeof(Cr==null?void 0:Cr.details)=="object"&&Cr.details!==null){const kr=extractValidationMessage(Cr.details);if(kr)return kr}return"Please check your feedback and try again."}return $.status>=500?typeof(Cr==null?void 0:Cr.details)=="string"&&Cr.details.trim()?Cr.details:"Could not send feedback right now. Please try again later.":typeof(Cr==null?void 0:Cr.error)=="string"&&Cr.error.trim()?Cr.error:`HTTP ${$.status}`},SupportTicketModal=({isOpen:$,onClose:Cr,contactEmail:kr})=>{const Pr=usePostHog(),[Rr,Ir]=reactExports.useState(""),[Fr,Lr]=reactExports.useState(!1),qr=reactExports.useCallback(()=>{Ir("")},[]),fa=reactExports.useCallback(()=>{Fr||(qr(),Cr())},[Fr,Cr,qr]),pa=reactExports.useCallback(async()=>{const ba=Rr.trim();if(!(!ba||Fr)){Lr(!0);try{const Aa=typeof(Pr==null?void 0:Pr.get_session_id)=="function"?Pr.get_session_id():void 0,ka=typeof(Pr==null?void 0:Pr.get_distinct_id)=="function"?Pr.get_distinct_id():void 0,Ea=kr==null?void 0:kr.trim(),Sa=await fetch("/api/support/tickets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:DEFAULT_TICKET_TYPE,message:ba,contactEmail:Ea||void 0,metadata:{posthogSessionId:Aa??void 0,posthogDistinctId:ka??void 0,appVersion:"0.8.1",appEnvironment:"production",pageUrl:window.location.href,userAgent:navigator.userAgent,submittedAt:new Date().toISOString()}})});if(!Sa.ok){const Ca=await parseSupportTicketError(Sa);throw new Error(Ca)}Pr==null||Pr.capture("support_ticket_submitted",{ticket_type:DEFAULT_TICKET_TYPE,has_posthog_session_id:!!Aa}),toast.success("Feedback sent",{description:"Thanks for sharing this."}),qr(),Cr()}catch(Aa){const ka=Aa instanceof Error?Aa.message:"Failed to send message";Pr==null||Pr.capture("support_ticket_submit_failed",{ticket_type:DEFAULT_TICKET_TYPE,error:ka}),log$5.error("Failed to submit support ticket:",ka),toast.error("Could not send feedback",{description:ka})}finally{Lr(!1)}}},[kr,Fr,Rr,Cr,Pr,qr]),ga=reactExports.useCallback(ba=>{ba.key==="Enter"&&(ba.metaKey||ba.ctrlKey)&&(ba.preventDefault(),pa())},[pa]),xa=MESSAGE_MAX_LENGTH-Rr.length,ya=Fr||Rr.trim().length===0;return jsxRuntimeExports.jsx(Root$1,{open:$,onOpenChange:ba=>!ba&&fa(),children:jsxRuntimeExports.jsxs(Portal,{children:[jsxRuntimeExports.jsx(Overlay,{className:"fixed inset-0 z-max bg-black/40"}),jsxRuntimeExports.jsx(Content$1,{className:"fixed left-1/2 top-1/2 z-max w-[480px] -translate-x-1/2 -translate-y-1/2 rounded-lg border border-divider bg-main p-6 shadow-xl outline-none",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx(Title,{className:"text-lg font-semibold text-content",children:"Send feedback"}),jsxRuntimeExports.jsx(Close,{asChild:!0,children:jsxRuntimeExports.jsx("button",{className:"rounded p-1 text-content-subtle transition-colors hover:text-content",disabled:Fr,children:jsxRuntimeExports.jsx(n$1,{className:"h-4 w-4",weight:"bold"})})})]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-content-subtle",children:"Tell us what happened or what we can improve."}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx("label",{htmlFor:"support-ticket-message",className:"text-xs font-medium text-content-muted",children:"Your feedback"}),jsxRuntimeExports.jsx("textarea",{id:"support-ticket-message",value:Rr,onChange:ba=>Ir(ba.target.value),onKeyDown:ga,maxLength:MESSAGE_MAX_LENGTH,rows:7,disabled:Fr,placeholder:"What happened?",className:"w-full resize-none rounded-md border border-divider bg-main-input px-3 py-2 text-sm text-content outline-none placeholder:text-content-subtle disabled:opacity-50"}),jsxRuntimeExports.jsxs("div",{className:"flex justify-between text-xs text-content-subtle",children:[jsxRuntimeExports.jsx("span",{children:"Context details are included automatically."}),jsxRuntimeExports.jsx("span",{children:xa})]})]}),jsxRuntimeExports.jsx("button",{onClick:pa,disabled:ya,className:"flex w-full items-center justify-center gap-2 rounded-md bg-primary px-3 py-2 text-xs text-white transition-colors hover:bg-primary-hover disabled:opacity-50",children:Fr?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(s$6,{className:"h-4 w-4 animate-spin",weight:"bold"}),jsxRuntimeExports.jsx("span",{children:"Sending..."})]}):jsxRuntimeExports.jsx("span",{children:"Send feedback"})})]})})]})})},rivetWordmark="data:image/svg+xml,%3csvg%20width='94'%20height='24'%20viewBox='0%200%2094%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M-0.000156164%2023.832V7.704H5.11184L6.47984%208.424C7.58384%207.704%209.04784%207.344%2010.8718%207.344C12.0718%207.344%2013.1278%207.476%2014.0398%207.74C14.9518%207.98%2015.6838%208.244%2016.2358%208.532C16.8118%208.82%2017.1718%209.024%2017.3158%209.144L15.5158%2013.824C15.2758%2013.656%2014.8198%2013.428%2014.1478%2013.14C13.4998%2012.852%2012.7318%2012.588%2011.8438%2012.348C10.9558%2012.084%2010.0198%2011.952%209.03584%2011.952H8.63984C7.96784%2011.952%207.45184%2012.072%207.09184%2012.312C6.73184%2012.528%206.55184%2013.02%206.55184%2013.788V23.832H-0.000156164ZM23.464%206.156C21.04%206.156%2019.828%205.124%2019.828%203.06C19.828%201.908%2020.128%201.116%2020.728%200.684C21.352%200.227999%2022.264%20-1.43051e-06%2023.464%20-1.43051e-06C24.736%20-1.43051e-06%2025.66%200.227999%2026.236%200.684C26.836%201.116%2027.136%201.908%2027.136%203.06C27.136%205.124%2025.912%206.156%2023.464%206.156ZM20.152%2023.832V7.704H26.704V23.832H20.152ZM37.4767%2023.832L29.6647%207.704H36.9007L40.3207%2016.524L41.2567%2019.116H41.6167L42.5527%2016.524L46.0087%207.704H53.1727L52.5967%209.9L45.4327%2023.832H37.4767ZM61.1953%2023.832C59.6113%2023.832%2058.3873%2023.604%2057.5233%2023.148C56.6833%2022.692%2056.1073%2022.068%2055.7953%2021.276C55.4833%2020.46%2055.3273%2019.524%2055.3273%2018.468V13.032C55.3273%2012.072%2055.4833%2011.196%2055.7953%2010.404C56.1313%209.588%2056.7193%208.94%2057.5593%208.46C58.3993%207.956%2059.6113%207.704%2061.1953%207.704H68.6473C70.5193%207.704%2071.9473%207.932%2072.9313%208.388C73.9393%208.82%2074.6233%209.444%2074.9833%2010.26C75.3673%2011.052%2075.5593%2011.976%2075.5593%2013.032V17.64H69.2593C67.0993%2017.64%2065.4553%2017.592%2064.3273%2017.496C63.2233%2017.4%2062.4433%2017.34%2061.9873%2017.316V17.856C61.9633%2018.816%2062.5393%2019.296%2063.7153%2019.296H64.8313C66.7513%2019.296%2068.5273%2019.26%2070.1593%2019.188C71.7913%2019.092%2073.0033%2019.008%2073.7953%2018.936L75.9553%2022.356C75.9553%2022.596%2075.7513%2022.824%2075.3433%2023.04C74.9353%2023.256%2074.2153%2023.448%2073.1833%2023.616C72.1753%2023.76%2070.7353%2023.832%2068.8633%2023.832H61.1953ZM61.9873%2014.184H68.8993V13.68C68.8993%2013.2%2068.8513%2012.864%2068.7553%2012.672C68.6833%2012.48%2068.4313%2012.36%2067.9993%2012.312C67.5673%2012.264%2066.8353%2012.24%2065.8033%2012.24H63.7153C62.5633%2012.24%2061.9873%2012.72%2061.9873%2013.68V14.184ZM85.8224%2023.832C83.9984%2023.832%2082.7504%2023.448%2082.0784%2022.68C81.4064%2021.912%2081.0704%2020.76%2081.0704%2019.224V12.24H78.1184V7.704H79.6304C80.0384%207.704%2080.3624%207.632%2080.6024%207.488C80.8664%207.32%2081.0344%207.032%2081.1064%206.624L81.7904%202.772H87.6944V7.704H93.7064V12.24H87.6944V17.82C87.6944%2018.42%2087.8384%2018.816%2088.1264%2019.008C88.4144%2019.2%2088.8464%2019.296%2089.4224%2019.296H93.0224L93.7424%2023.472C93.2384%2023.544%2092.4704%2023.628%2091.4384%2023.724C90.4064%2023.796%2089.2784%2023.832%2088.0544%2023.832H85.8224Z'%20fill='%23FF3300'/%3e%3c/svg%3e",AuthScreenView=({isSigningIn:$,onStartSignIn:Cr,errorMessage:kr=null,isDesktopShell:Pr=!1,displayMode:Rr="full"})=>{const Ir=Rr==="modal";return jsxRuntimeExports.jsxs("div",{className:Ir?"glass-panel relative w-full max-w-sm rounded-2xl border border-white/10 px-8 py-14 font-main text-white shadow-2xl":"relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-[#1c1c20] font-main text-white",children:[Pr&&!Ir?jsxRuntimeExports.jsx("div",{className:"fixed left-0 right-0 top-0 z-10 h-8",style:{WebkitAppRegion:"drag"}}):null,jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-10",children:[jsxRuntimeExports.jsx("img",{src:rivetWordmark,alt:"Rivet",className:"h-8 w-auto object-contain"}),jsxRuntimeExports.jsxs("div",{className:"text-center",children:[jsxRuntimeExports.jsx("h1",{className:"mb-2 text-xl font-medium text-content",children:"Welcome to Rivet"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-content-muted",children:"Sign in to get started"})]}),jsxRuntimeExports.jsx("button",{onClick:Cr,disabled:$,className:"glass-panel active-push flex items-center gap-3 rounded-xl px-8 py-3.5 text-sm font-medium transition-all hover:bg-white/10 disabled:opacity-50",children:$?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-primary border-t-transparent"}),jsxRuntimeExports.jsx("span",{children:"Signing in..."})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("img",{src:"https://www.gstatic.com/firebasejs/ui/2.0.0/images/auth/google.svg",alt:"Google",className:"h-5 w-5 brightness-110"}),jsxRuntimeExports.jsx("span",{children:"Sign in with Google"})]})}),kr?jsxRuntimeExports.jsx("p",{className:"text-center text-xs text-red-200",children:kr}):null]})]})},log$4=createLogger("useConfig"),useConfig=()=>{const[$,Cr]=reactExports.useState(null),kr=useAtomValue(featureFlagsAtom),Pr=useSetAtom(featureFlagsAtom),[Rr,Ir]=reactExports.useState(!0),[Fr,Lr]=reactExports.useState(null),qr=useSetAtom(isMCPSessionAtom),fa=useSetAtom(mcpEditorAtom),pa=useSetAtom(agentModeAvailableAtom),ga=reactExports.useCallback(ya=>{Cr(ya),pa(ya.agentModeAvailable),Pr(ya.featureFlags??DEFAULT_FEATURE_FLAGS),ya.isMCPSession&&qr(!0),ya.mcpEditor&&fa(ya.mcpEditor)},[pa,Pr,qr,fa]),xa=reactExports.useCallback(async()=>{try{const ya=await fetch("/api/config");if(!ya.ok)throw new Error(`Failed to fetch config: ${ya.statusText}`);const ba=await ya.json();return ga(ba),Lr(null),log$4.info("Config refetched:",ba),ba}catch(ya){const ba=ya instanceof Error?ya.message:"Failed to load config";return Lr(ba),log$4.warn("Failed to refetch config:",ba),null}},[ga]);return reactExports.useEffect(()=>{let ya=!1;return(async()=>{try{const Aa=await fetch("/api/config");if(!Aa.ok)throw new Error(`Failed to fetch config: ${Aa.statusText}`);const ka=await Aa.json();ya||(ga(ka),log$4.info("Config loaded:",ka))}catch(Aa){const ka=Aa instanceof Error?Aa.message:"Failed to load config";ya||(Lr(ka),log$4.warn("Failed to load config:",ka))}finally{ya||Ir(!1)}})(),()=>{ya=!0}},[ga]),{config:$,featureFlags:kr,loading:Rr,error:Fr,refetchConfig:xa}};var define_process_env_default={};const DEFAULT_PROXY_URL="https://rivet-proxy.onrender.com";var jg;const envProxyUrl=(jg=define_process_env_default.RIVET_PROXY_URL)==null?void 0:jg.trim(),PROXY_URL=envProxyUrl&&envProxyUrl.length>0?envProxyUrl:DEFAULT_PROXY_URL,DEFAULT_GATEWAY_URL="https://rivet-core-production.up.railway.app";var Dg;const envGatewayUrl=(Dg=define_process_env_default.RIVET_GATEWAY_URL)==null?void 0:Dg.trim();envGatewayUrl&&envGatewayUrl.length>0;const log$3=createLogger("useOAuthCallback"),useOAuthCallback=()=>{const[$,Cr]=reactExports.useState({isProcessing:!1,isComplete:!1,error:null});return reactExports.useEffect(()=>{(async()=>{var Ir,Fr;const Pr=window.location.hash,Rr=window.location.search;if(!(!Pr||!Pr.includes("access_token"))){Cr({isProcessing:!0,isComplete:!1,error:null});try{log$3.info("Processing OAuth callback...");const Lr=new URLSearchParams(Pr.substring(1)),qr=Lr.get("access_token"),fa=Lr.get("refresh_token"),ga=new URLSearchParams(Rr).get("session");if(!qr)throw new Error("No access token found in URL");if(!ga)throw new Error("No session ID found in URL");log$3.info(`Completing OAuth with session: ${ga}`);const xa=await fetch(`${PROXY_URL}/api/auth/google/complete`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:ga,accessToken:qr,refreshToken:fa})}),ya=await xa.json();if(!xa.ok||!ya.success)throw new Error(ya.error||ya.message||"Failed to complete authentication");if(log$3.info("OAuth authentication completed successfully"),(Ir=ya.user)!=null&&Ir.email&&va.identify(ya.user.email,{email:ya.user.email}),(Fr=ya.user)!=null&&Fr.email&&qr)try{const Aa=await fetch("/api/auth/store",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:ya.user.email,token:qr,refreshToken:fa})});Aa.ok||log$3.warn(`Local auth store returned ${Aa.status}`)}catch(Aa){log$3.warn("Failed to store auth locally:",Aa)}const ba=window.location.pathname;window.history.replaceState({},document.title,ba),Cr({isProcessing:!1,isComplete:!0,error:null})}catch(Lr){const qr=Lr instanceof Error?Lr.message:"Unknown error occurred";log$3.warn("OAuth callback error:",Lr),Cr({isProcessing:!1,isComplete:!1,error:qr})}}})()},[]),$},log$2=createLogger("useTokenEditor"),useTokenEditor=()=>{const[$,Cr]=reactExports.useState(null),[kr,Pr]=reactExports.useState(null),[Rr,Ir]=reactExports.useState(new Map),[Fr,Lr]=reactExports.useState(!0),[qr,fa]=reactExports.useState(!1),[pa,ga]=reactExports.useState(null),xa=reactExports.useCallback(async()=>{Lr(!0),ga(null);try{const ka=await fetch("/api/tokens");if(!ka.ok)throw new Error(`Failed to fetch tokens: ${ka.statusText}`);const Ea=await ka.json();Cr(Ea.registry),Pr(Ea.framework),log$2.info(`Loaded ${Ea.framework} tokens`)}catch(ka){const Ea=ka instanceof Error?ka.message:"Unknown error";ga(Ea),log$2.warn("Failed to fetch tokens:",ka)}finally{Lr(!1)}},[]);reactExports.useEffect(()=>{xa()},[xa]);const ya=reactExports.useCallback((ka,Ea,Sa,Ca)=>{const Ta=`${ka}.${Ea}`;Ir(Ia=>{const Ra=new Map(Ia);return Ca===Sa?Ra.delete(Ta):Ra.set(Ta,{category:ka,path:Ea,originalValue:Sa,newValue:Ca}),Ra})},[]),ba=reactExports.useCallback(async()=>{if(Rr.size===0)return!0;fa(!0),ga(null);const ka=Array.from(Rr.values());let Ea=!0;for(const Sa of ka)try{log$2.info(`Saving ${Sa.category}.${Sa.path} = "${Sa.newValue}"`);const Ta=await(await fetch("/api/tokens/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:Sa.category,path:Sa.path,value:Sa.newValue})})).json();if(!Ta.success)throw new Error(Ta.error||"Update failed");log$2.info(`Successfully saved ${Sa.category}.${Sa.path}`)}catch(Ca){const Ta=Ca instanceof Error?Ca.message:"Unknown error";ga(`Failed to update ${Sa.category}.${Sa.path}: ${Ta}`),log$2.warn(`Failed to save ${Sa.category}.${Sa.path}:`,Ca),Ea=!1;break}return Ea&&(Ir(new Map),await xa()),fa(!1),Ea},[Rr,xa]),Aa=reactExports.useCallback(()=>{Ir(new Map),log$2.info("Reverted all pending changes")},[]);return{tokens:$,framework:kr,pendingChanges:Rr,isLoading:Fr,isSaving:qr,error:pa,updateToken:ya,saveChanges:ba,revertChanges:Aa,refetch:xa}};var ENTRY_FOCUS="rovingFocusGroup.onEntryFocus",EVENT_OPTIONS={bubbles:!1,cancelable:!0},GROUP_NAME="RovingFocusGroup",[Collection,useCollection,createCollectionScope]=createCollection(GROUP_NAME),[createRovingFocusGroupContext,createRovingFocusGroupScope]=createContextScope(GROUP_NAME,[createCollectionScope]),[RovingFocusProvider,useRovingFocusContext]=createRovingFocusGroupContext(GROUP_NAME),RovingFocusGroup=reactExports.forwardRef(($,Cr)=>jsxRuntimeExports.jsx(Collection.Provider,{scope:$.__scopeRovingFocusGroup,children:jsxRuntimeExports.jsx(Collection.Slot,{scope:$.__scopeRovingFocusGroup,children:jsxRuntimeExports.jsx(RovingFocusGroupImpl,{...$,ref:Cr})})}));RovingFocusGroup.displayName=GROUP_NAME;var RovingFocusGroupImpl=reactExports.forwardRef(($,Cr)=>{const{__scopeRovingFocusGroup:kr,orientation:Pr,loop:Rr=!1,dir:Ir,currentTabStopId:Fr,defaultCurrentTabStopId:Lr,onCurrentTabStopIdChange:qr,onEntryFocus:fa,preventScrollOnEntryFocus:pa=!1,...ga}=$,xa=reactExports.useRef(null),ya=useComposedRefs(Cr,xa),ba=useDirection(Ir),[Aa,ka]=useControllableState({prop:Fr,defaultProp:Lr??null,onChange:qr,caller:GROUP_NAME}),[Ea,Sa]=reactExports.useState(!1),Ca=useCallbackRef$1(fa),Ta=useCollection(kr),Ia=reactExports.useRef(!1),[Ra,ja]=reactExports.useState(0);return reactExports.useEffect(()=>{const Oa=xa.current;if(Oa)return Oa.addEventListener(ENTRY_FOCUS,Ca),()=>Oa.removeEventListener(ENTRY_FOCUS,Ca)},[Ca]),jsxRuntimeExports.jsx(RovingFocusProvider,{scope:kr,orientation:Pr,dir:ba,loop:Rr,currentTabStopId:Aa,onItemFocus:reactExports.useCallback(Oa=>ka(Oa),[ka]),onItemShiftTab:reactExports.useCallback(()=>Sa(!0),[]),onFocusableItemAdd:reactExports.useCallback(()=>ja(Oa=>Oa+1),[]),onFocusableItemRemove:reactExports.useCallback(()=>ja(Oa=>Oa-1),[]),children:jsxRuntimeExports.jsx(Primitive.div,{tabIndex:Ea||Ra===0?-1:0,"data-orientation":Pr,...ga,ref:ya,style:{outline:"none",...$.style},onMouseDown:composeEventHandlers($.onMouseDown,()=>{Ia.current=!0}),onFocus:composeEventHandlers($.onFocus,Oa=>{const La=!Ia.current;if(Oa.target===Oa.currentTarget&&La&&!Ea){const Ha=new CustomEvent(ENTRY_FOCUS,EVENT_OPTIONS);if(Oa.currentTarget.dispatchEvent(Ha),!Ha.defaultPrevented){const Wa=Ta().filter(Na=>Na.focusable),Ja=Wa.find(Na=>Na.active),Ya=Wa.find(Na=>Na.id===Aa),Qa=[Ja,Ya,...Wa].filter(Boolean).map(Na=>Na.ref.current);focusFirst(Qa,pa)}}Ia.current=!1}),onBlur:composeEventHandlers($.onBlur,()=>Sa(!1))})})}),ITEM_NAME="RovingFocusGroupItem",RovingFocusGroupItem=reactExports.forwardRef(($,Cr)=>{const{__scopeRovingFocusGroup:kr,focusable:Pr=!0,active:Rr=!1,tabStopId:Ir,children:Fr,...Lr}=$,qr=useId(),fa=Ir||qr,pa=useRovingFocusContext(ITEM_NAME,kr),ga=pa.currentTabStopId===fa,xa=useCollection(kr),{onFocusableItemAdd:ya,onFocusableItemRemove:ba,currentTabStopId:Aa}=pa;return reactExports.useEffect(()=>{if(Pr)return ya(),()=>ba()},[Pr,ya,ba]),jsxRuntimeExports.jsx(Collection.ItemSlot,{scope:kr,id:fa,focusable:Pr,active:Rr,children:jsxRuntimeExports.jsx(Primitive.span,{tabIndex:ga?0:-1,"data-orientation":pa.orientation,...Lr,ref:Cr,onMouseDown:composeEventHandlers($.onMouseDown,ka=>{Pr?pa.onItemFocus(fa):ka.preventDefault()}),onFocus:composeEventHandlers($.onFocus,()=>pa.onItemFocus(fa)),onKeyDown:composeEventHandlers($.onKeyDown,ka=>{if(ka.key==="Tab"&&ka.shiftKey){pa.onItemShiftTab();return}if(ka.target!==ka.currentTarget)return;const Ea=getFocusIntent(ka,pa.orientation,pa.dir);if(Ea!==void 0){if(ka.metaKey||ka.ctrlKey||ka.altKey||ka.shiftKey)return;ka.preventDefault();let Ca=xa().filter(Ta=>Ta.focusable).map(Ta=>Ta.ref.current);if(Ea==="last")Ca.reverse();else if(Ea==="prev"||Ea==="next"){Ea==="prev"&&Ca.reverse();const Ta=Ca.indexOf(ka.currentTarget);Ca=pa.loop?wrapArray(Ca,Ta+1):Ca.slice(Ta+1)}setTimeout(()=>focusFirst(Ca))}}),children:typeof Fr=="function"?Fr({isCurrentTabStop:ga,hasTabStop:Aa!=null}):Fr})})});RovingFocusGroupItem.displayName=ITEM_NAME;var MAP_KEY_TO_FOCUS_INTENT={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function getDirectionAwareKey($,Cr){return Cr!=="rtl"?$:$==="ArrowLeft"?"ArrowRight":$==="ArrowRight"?"ArrowLeft":$}function getFocusIntent($,Cr,kr){const Pr=getDirectionAwareKey($.key,kr);if(!(Cr==="vertical"&&["ArrowLeft","ArrowRight"].includes(Pr))&&!(Cr==="horizontal"&&["ArrowUp","ArrowDown"].includes(Pr)))return MAP_KEY_TO_FOCUS_INTENT[Pr]}function focusFirst($,Cr=!1){const kr=document.activeElement;for(const Pr of $)if(Pr===kr||(Pr.focus({preventScroll:Cr}),document.activeElement!==kr))return}function wrapArray($,Cr){return $.map((kr,Pr)=>$[(Cr+Pr)%$.length])}var Root=RovingFocusGroup,Item=RovingFocusGroupItem,TABS_NAME="Tabs",[createTabsContext]=createContextScope(TABS_NAME,[createRovingFocusGroupScope]),useRovingFocusGroupScope=createRovingFocusGroupScope(),[TabsProvider,useTabsContext]=createTabsContext(TABS_NAME),Tabs=reactExports.forwardRef(($,Cr)=>{const{__scopeTabs:kr,value:Pr,onValueChange:Rr,defaultValue:Ir,orientation:Fr="horizontal",dir:Lr,activationMode:qr="automatic",...fa}=$,pa=useDirection(Lr),[ga,xa]=useControllableState({prop:Pr,onChange:Rr,defaultProp:Ir??"",caller:TABS_NAME});return jsxRuntimeExports.jsx(TabsProvider,{scope:kr,baseId:useId(),value:ga,onValueChange:xa,orientation:Fr,dir:pa,activationMode:qr,children:jsxRuntimeExports.jsx(Primitive.div,{dir:pa,"data-orientation":Fr,...fa,ref:Cr})})});Tabs.displayName=TABS_NAME;var TAB_LIST_NAME="TabsList",TabsList=reactExports.forwardRef(($,Cr)=>{const{__scopeTabs:kr,loop:Pr=!0,...Rr}=$,Ir=useTabsContext(TAB_LIST_NAME,kr),Fr=useRovingFocusGroupScope(kr);return jsxRuntimeExports.jsx(Root,{asChild:!0,...Fr,orientation:Ir.orientation,dir:Ir.dir,loop:Pr,children:jsxRuntimeExports.jsx(Primitive.div,{role:"tablist","aria-orientation":Ir.orientation,...Rr,ref:Cr})})});TabsList.displayName=TAB_LIST_NAME;var TRIGGER_NAME="TabsTrigger",TabsTrigger=reactExports.forwardRef(($,Cr)=>{const{__scopeTabs:kr,value:Pr,disabled:Rr=!1,...Ir}=$,Fr=useTabsContext(TRIGGER_NAME,kr),Lr=useRovingFocusGroupScope(kr),qr=makeTriggerId(Fr.baseId,Pr),fa=makeContentId(Fr.baseId,Pr),pa=Pr===Fr.value;return jsxRuntimeExports.jsx(Item,{asChild:!0,...Lr,focusable:!Rr,active:pa,children:jsxRuntimeExports.jsx(Primitive.button,{type:"button",role:"tab","aria-selected":pa,"aria-controls":fa,"data-state":pa?"active":"inactive","data-disabled":Rr?"":void 0,disabled:Rr,id:qr,...Ir,ref:Cr,onMouseDown:composeEventHandlers($.onMouseDown,ga=>{!Rr&&ga.button===0&&ga.ctrlKey===!1?Fr.onValueChange(Pr):ga.preventDefault()}),onKeyDown:composeEventHandlers($.onKeyDown,ga=>{[" ","Enter"].includes(ga.key)&&Fr.onValueChange(Pr)}),onFocus:composeEventHandlers($.onFocus,()=>{const ga=Fr.activationMode!=="manual";!pa&&!Rr&&ga&&Fr.onValueChange(Pr)})})})});TabsTrigger.displayName=TRIGGER_NAME;var CONTENT_NAME="TabsContent",TabsContent=reactExports.forwardRef(($,Cr)=>{const{__scopeTabs:kr,value:Pr,forceMount:Rr,children:Ir,...Fr}=$,Lr=useTabsContext(CONTENT_NAME,kr),qr=makeTriggerId(Lr.baseId,Pr),fa=makeContentId(Lr.baseId,Pr),pa=Pr===Lr.value,ga=reactExports.useRef(pa);return reactExports.useEffect(()=>{const xa=requestAnimationFrame(()=>ga.current=!1);return()=>cancelAnimationFrame(xa)},[]),jsxRuntimeExports.jsx(Presence,{present:Rr||pa,children:({present:xa})=>jsxRuntimeExports.jsx(Primitive.div,{"data-state":pa?"active":"inactive","data-orientation":Lr.orientation,role:"tabpanel","aria-labelledby":qr,hidden:!xa,id:fa,tabIndex:0,...Fr,ref:Cr,style:{...$.style,animationDuration:ga.current?"0s":void 0},children:xa&&Ir})})});TabsContent.displayName=CONTENT_NAME;function makeTriggerId($,Cr){return`${$}-trigger-${Cr}`}function makeContentId($,Cr){return`${$}-content-${Cr}`}var Root2=Tabs,List=TabsList,Trigger=TabsTrigger,Content=TabsContent;const ColorSwatchGrid=({tokens:$,pendingChanges:Cr,category:kr,onUpdateToken:Pr,highlightToken:Rr})=>{const[Ir,Fr]=reactExports.useState(null),[Lr,qr]=reactExports.useState(""),fa=reactExports.useRef(null);if(reactExports.useEffect(()=>{Rr&&fa.current&&setTimeout(()=>{var Aa;(Aa=fa.current)==null||Aa.scrollIntoView({behavior:"smooth",block:"center"})},100)},[Rr]),!$||Object.keys($).length===0)return jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center py-12 text-sm text-gray-500",children:"No tokens defined for this category"});const pa=(Aa,ka)=>{const Ea=`${kr}.${Aa}`,Sa=Cr.get(Ea);return Sa?Sa.newValue:ka},ga=Aa=>{if(Aa.includes("var(")||Aa.includes("--"))return{textClass:"text-white",mutedClass:"text-white/70"};let ka=0,Ea=0,Sa=0,Ca=!1;if(Aa.startsWith("#")){const ja=Aa.slice(1);ja.length===3?(ka=parseInt(ja[0]+ja[0],16),Ea=parseInt(ja[1]+ja[1],16),Sa=parseInt(ja[2]+ja[2],16),Ca=!0):ja.length>=6&&(ka=parseInt(ja.slice(0,2),16),Ea=parseInt(ja.slice(2,4),16),Sa=parseInt(ja.slice(4,6),16),Ca=!0)}const Ta=Aa.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);if(Ta&&(ka=parseInt(Ta[1],10),Ea=parseInt(Ta[2],10),Sa=parseInt(Ta[3],10),Ca=!0),!Ca){const ja=Aa.match(/rgba?\(\s*(\d+)\s+(\d+)\s+(\d+)/);ja&&(ka=parseInt(ja[1],10),Ea=parseInt(ja[2],10),Sa=parseInt(ja[3],10),Ca=!0)}if(!Ca){const ja=Aa.match(/hsla?\(\s*(\d+)\s*,\s*(\d+)%?\s*,\s*(\d+)%?/);if(ja){const Oa=hslValuesToRgb(parseInt(ja[1],10),parseInt(ja[2],10),parseInt(ja[3],10));ka=Oa.r,Ea=Oa.g,Sa=Oa.b,Ca=!0}}if(!Ca){const ja=Aa.match(/hsla?\(\s*(\d+)\s+(\d+)%?\s+(\d+)%?/);if(ja){const Oa=hslValuesToRgb(parseInt(ja[1],10),parseInt(ja[2],10),parseInt(ja[3],10));ka=Oa.r,Ea=Oa.g,Sa=Oa.b,Ca=!0}}if(!Ca){const ja=Aa.match(/oklch\(\s*([\d.]+)(%?)/);if(ja){const Oa=parseFloat(ja[1]),Ha=(ja[2]==="%"?Oa/100:Oa)>.5;return{textClass:Ha?"text-gray-900":"text-white",mutedClass:Ha?"text-gray-600":"text-white/70"}}}if(!Ca)return{textClass:"text-white",mutedClass:"text-white/70"};const Ra=calculateLuminance(ka,Ea,Sa)>.5;return{textClass:Ra?"text-gray-900":"text-white",mutedClass:Ra?"text-gray-600":"text-white/70"}},xa=(Aa,ka,Ea,Sa)=>{const Ca=pa(ka,Ea),Ta=Ir===ka,Ia=Ta&&Lr?Lr:Ca,Ra=ka.replace(/\./g,"-"),ja=Rr===Ra||Rr===Aa,Oa=Ia.includes("rgba")||Ia.startsWith("#")&&Ia.length===9||/oklch\(/.test(Ia)&&Ia.includes("/"),{textClass:La}=ga(Ia),Ha=Za=>{qr(Za)},Wa=Za=>{Pr(kr,ka,Ea,Za),Fr(null),qr("")},Ja=Za=>{Za?(Fr(ka),qr(Ca)):(Lr&&Lr!==Ca&&Pr(kr,ka,Ea,Lr),Fr(null),qr(""))},Ya=Sa?"h-44":"h-52";return jsxRuntimeExports.jsxs(Root2$3,{open:Ta,onOpenChange:Ja,children:[jsxRuntimeExports.jsx(Trigger$4,{asChild:!0,children:jsxRuntimeExports.jsxs("div",{ref:ja?fa:null,className:`group relative flex ${Ya} cursor-pointer flex-col justify-between overflow-hidden rounded-lg border border-white/10 p-4 transition-all ${ja?"animate-token-highlight":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"absolute inset-0",children:[Oa&&jsxRuntimeExports.jsx("div",{className:"absolute inset-0",style:{backgroundImage:`
|
|
347
347
|
linear-gradient(45deg, #e5e5e5 25%, transparent 25%),
|
|
348
348
|
linear-gradient(-45deg, #e5e5e5 25%, transparent 25%),
|
|
349
349
|
linear-gradient(45deg, transparent 75%, #e5e5e5 75%),
|
|
@@ -377,4 +377,4 @@ For more information, see https://radix-ui.com/primitives/docs/components/${Cr.d
|
|
|
377
377
|
<body>
|
|
378
378
|
<div class="panel">${OAUTH_POPUP_LOADING_TITLE}</div>
|
|
379
379
|
</body>
|
|
380
|
-
</html>`,DEMO_SESSION_CAPACITY_MESSAGE="Too many people are trying Rivet right now. Please try again in a few minutes.",DEFAULT_DEMO_SESSION_ERROR_MESSAGE="Failed to start an isolated demo session.",resolveDemoSessionErrorMessage=async $=>{if($.status===429)return DEMO_SESSION_CAPACITY_MESSAGE;try{const Cr=await $.json();if(Cr.error)return Cr.error;if(Cr.message)return Cr.message}catch{}return DEFAULT_DEMO_SESSION_ERROR_MESSAGE},MainEditor=({contactEmail:$,projectPath:Cr,activeDemoSessionId:kr=null,showLoginGate:Pr=!1,onStartLogin:Rr,isStartingLogin:Ir=!1,loginError:Fr=null,fullPageHostedLoginProgressMessage:Lr=null,holdHostedTryoutPreviewNavigation:qr=!1,hostedTryoutPreviewHoldMessage:fa=null,deferInspectorUntilPreviewReady:pa=!1})=>{const[ga,xa]=useAtom(selectedElementAtom),ya=useSetAtom(designTokensAtom),ba=useSetAtom(elementScreenshotAtom),Aa=useSetAtom(changeModeAtom),[ka,Ea]=useAtom(chatMessagesAtom),Sa=useAtomValue(modeAtom),[Ca,Ta]=useAtom(panelOpenAtom),[Ia,Ra]=reactExports.useState(!1),[ja,Oa]=useAtom(commentsAtom),La=useAtomValue(designChangeCountAtom),Ha=useAtomValue(isCommentDraftDirtyAtom),Wa=useSetAtom(commentShakeAtom),Ja=useSetAtom(panelClickVersionAtom),Za=Array.from(ja.values()).filter(Ua=>Ua.status==="pending").length+La,Na=useOAuthCallback().isProcessing?"Completing authentication...":Lr,Ka=Na!==null,Fa=reactExports.useRef((ga==null?void 0:ga.xpath)??null),Va=reactExports.useRef(!1),Da=reactExports.useRef(!1);reactExports.useEffect(()=>{if(!Cr||Va.current)return;Va.current=!0;const Ua=deserializeComments(Cr);Ua.size>0&&(Da.current=!0,Oa(Ua))},[Cr,Oa]),reactExports.useEffect(()=>{if(!(!Cr||!Va.current)){if(Da.current){Da.current=!1;return}serializeComments(ja,Cr)}},[ja,Cr]),reactExports.useEffect(()=>{(async()=>{try{const qa=await fetch("/api/tokens");if(qa.ok){const $a=await qa.json();ya($a),$a.framework&&log.info(`Loaded ${$a.framework} design tokens`)}}catch(qa){log.error("Failed to fetch design tokens:",qa)}})()},[ya]);const Ba=()=>{const Ua=document.getElementById("rivet-selection-overlay");Ua&&(Ua.style.opacity="0");const qa=document.getElementById("rivet-hover-overlay");qa&&(qa.style.opacity="0"),xa(null),ba(null)};reactExports.useEffect(()=>{if(!Pr)return;Aa("view");const Ua=document.getElementById("rivet-selection-overlay");Ua&&(Ua.style.opacity="0");const qa=document.getElementById("rivet-hover-overlay");qa&&(qa.style.opacity="0"),xa(null),ba(null),document.body.style.cursor="auto"},[Pr,Aa,ba,xa]);const Ga=reactExports.useMemo(()=>[{key:"Escape",allowInTextField:!0,handler:Ua=>{const qa=Ua.target,$a=qa.tagName.toLowerCase();if(!(($a==="input"||$a==="textarea"||$a==="select"||qa.getAttribute("contenteditable")==="true")&&Sa!=="comment")){if(qa.closest("[data-radix-popper-content-wrapper]")){log.debug("Escape key pressed inside popover - letting Radix handle it");return}if(Ha){log.debug("Escape key pressed with dirty draft comment - blocking close"),Wa(ll=>ll+1);return}log.debug("Escape key pressed - switching to view mode"),Aa("view"),Ba()}},description:"Close inspector"},{key:"c",handler:()=>{log.debug("C key pressed - switching to comment mode"),Aa("comment")},description:"Switch to comment mode"},{key:"v",handler:()=>{log.debug("V key pressed - switching to view mode"),Aa("view")},description:"Switch to view mode"},{key:"d",handler:()=>{log.debug("D key pressed - switching to design mode"),Aa("edit")},description:"Switch to design mode"}],[Sa,Ha,Aa,Wa]);return useKeyboardShortcuts({shortcuts:Ga}),reactExports.useEffect(()=>{const Ua=()=>{window.dispatchEvent(new CustomEvent("rivet:reposition-overlays"))};return window.addEventListener("resize",Ua),()=>window.removeEventListener("resize",Ua)},[]),reactExports.useEffect(()=>{const Ua=(ga==null?void 0:ga.xpath)??null,qa=Fa.current;Ua&&Ua!==qa&&(Fa.current=Ua)},[ga==null?void 0:ga.xpath]),reactExports.useEffect(()=>{Sa==="view"&&Ta(!1)},[Sa,Ta]),jsxRuntimeExports.jsxs(motion.div,{className:"relative flex h-screen overflow-hidden",initial:{opacity:0},animate:{opacity:1},transition:{duration:.5,ease:"easeOut"},"data-cy":"rivet-app",children:[Ka?jsxRuntimeExports.jsx("div",{className:"absolute inset-0 z-50 flex items-center justify-center bg-black/50",children:jsxRuntimeExports.jsx("div",{className:"rounded-lg border border-divider bg-main p-6 shadow-lg",children:jsxRuntimeExports.jsx(Progress,{message:Na})})}):null,Pr&&!Ka?jsxRuntimeExports.jsx("div",{className:"absolute inset-0 z-40 flex items-center justify-center bg-black/45 backdrop-blur-[2px]",children:jsxRuntimeExports.jsx(AuthScreenView,{isSigningIn:Ir,onStartSignIn:()=>{Rr==null||Rr()},errorMessage:Fr,displayMode:"modal"})}):null,jsxRuntimeExports.jsxs("div",{className:`relative flex min-w-0 flex-1 flex-col ${Pr?"pointer-events-none select-none":""}`,children:[jsxRuntimeExports.jsx(PreviewFrame,{holdHostedTryoutPreviewNavigation:qr,isInteractionDisabled:Pr,activeDemoSessionId:kr}),qr&&fa?jsxRuntimeExports.jsx("div",{className:"absolute inset-0 z-30 flex items-center justify-center bg-main",children:jsxRuntimeExports.jsx("div",{className:"rounded-lg border border-divider bg-main-light p-6 shadow-lg",children:jsxRuntimeExports.jsx(Progress,{message:fa})})}):null]}),Pr?null:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[pa?null:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(motion.div,{className:"h-full flex-shrink-0",animate:{width:Ca?"auto":0,opacity:Ca?1:0},transition:{ease:[.19,1,.22,1],duration:.45},style:{overflow:"hidden",willChange:"width"},onClickCapture:()=>Ja(Ua=>Ua+1),children:jsxRuntimeExports.jsx(ElementInspector,{chatMessages:ka,setChatMessages:Ea,onClose:()=>Ta(!1)})}),jsxRuntimeExports.jsx(AnimatePresence,{children:!Ca&&jsxRuntimeExports.jsx(motion.button,{initial:{opacity:0,x:8},animate:{opacity:1,x:0},exit:{opacity:0,x:8},transition:{duration:.15},onClick:()=>Ta(!0),title:"Open panel",className:"absolute right-0 top-4 z-50 rounded-l-lg border border-r-0 border-primary/30 bg-main p-2 text-content shadow-lg transition-colors",children:jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(c$3,{className:"h-4 w-4",weight:"bold"}),Za>0&&jsxRuntimeExports.jsx("span",{className:"absolute -right-1.5 -top-1.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-primary text-[9px] font-bold leading-none text-white",children:Za>9?"9+":Za})]})})})]}),jsxRuntimeExports.jsxs("button",{onClick:()=>Ra(!0),title:"Support and feedback",className:"absolute bottom-4 left-4 z-50 inline-flex items-center gap-1.5 rounded-md border border-primary/30 bg-main px-3 py-2 text-xs font-medium text-content transition-colors hover:bg-main-hover",children:[jsxRuntimeExports.jsx(s$7,{className:"h-3.5 w-3.5",weight:"bold"}),jsxRuntimeExports.jsx("span",{children:"Support"})]}),jsxRuntimeExports.jsx(SupportTicketModal,{isOpen:Ia,onClose:()=>Ra(!1),contactEmail:$})]}),jsxRuntimeExports.jsx(Toaster,{duration:5e3,richColors:!0,toastOptions:{style:{maxHeight:"150px",overflow:"hidden"}}})]})},App=()=>{const[$,Cr]=reactExports.useState(window.location.hash),[kr,Pr]=reactExports.useState(0),{config:Rr,refetchConfig:Ir,loading:Fr,error:Lr}=useConfig(),qr=useSetAtom(isCommentDraftDirtyAtom),[fa,pa]=reactExports.useState(!1),[ga,xa]=reactExports.useState(null),[ya,ba]=reactExports.useState(!1),[Aa,ka]=reactExports.useState(!1),[Ea,Sa]=reactExports.useState(null),[Ca,Ta]=reactExports.useState(!1),Ia=reactExports.useRef(!1),Ra=reactExports.useRef(!1),ja=tryExtractDemoSessionId(window.location.pathname),Oa=(Rr==null?void 0:Rr.activeDemoSessionId)??null,La=ja??Ea??Oa,Ha=reactExports.useMemo(()=>getHostedDemoPreviewSessionId(Rr==null?void 0:Rr.demoMode,Rr==null?void 0:Rr.agentModeAvailable,La),[Rr==null?void 0:Rr.demoMode,Rr==null?void 0:Rr.agentModeAvailable,La]),Wa=reactExports.useMemo(()=>getNeedsHostedSessionBootstrap({configLoading:Fr,hasConfig:Rr!==null,demoMode:Rr==null?void 0:Rr.demoMode,agentModeAvailable:Rr==null?void 0:Rr.agentModeAvailable,pathnameDemoSessionId:ja,activeDemoSessionId:Ea,configuredDemoSessionId:Oa}),[Rr,Fr,ja,Ea,Oa]);reactExports.useLayoutEffect(()=>{if(!Wa){Ta(!1);return}Ta(!0)},[Wa]);const Ja=Ca,Ya=reactExports.useMemo(()=>getHostedTryoutPreviewHoldMessage(Ja),[Ja]),Za=(Rr==null?void 0:Rr.demoMode)===!0&&Ja,Qa=reactExports.useRef(null);Qa.current=La,reactExports.useEffect(()=>{Ia.current=(Rr==null?void 0:Rr.demoMode)===!0},[Rr==null?void 0:Rr.demoMode]);const Na=reactExports.useCallback(async()=>{if(!Ia.current)return;Sa(null);const qa=await Ir();if((qa==null?void 0:qa.demoMode)===!0&&qa.agentModeAvailable!==!0){ka(!1);return}(qa==null?void 0:qa.demoMode)===!0&&ka(!0)},[Ir]);reactExports.useEffect(()=>{if((Rr==null?void 0:Rr.demoMode)===!0)return subscribeHostedDemoAuthRecovery(()=>{Na()})},[Rr==null?void 0:Rr.demoMode,Na]),reactExports.useEffect(()=>{if((Rr==null?void 0:Rr.demoMode)!==!0)return;const qa=window.fetch.bind(window);return installHostedDemoFetch401Interceptor({nativeFetch:qa,pageOrigin:window.location.origin,getShouldIntercept:()=>Ia.current})},[Rr==null?void 0:Rr.demoMode]),reactExports.useEffect(()=>{(Rr==null?void 0:Rr.agentModeAvailable)===!0&&ka(!1)},[Rr==null?void 0:Rr.agentModeAvailable]);const Ka=reactExports.useCallback(async qa=>{const $a=Qa.current;if(!(qa!=null&&qa.forceRefresh)&&$a)return $a;if(Ra.current)return"";Ra.current=!0;try{const tl=await fetch("/api/demo/session",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(!tl.ok){const ol=await resolveDemoSessionErrorMessage(tl);throw new Error(ol)}const ll=await tl.json();if(!ll.sessionId)throw new Error("Demo session response missing session id.");return Sa(ll.sessionId),ll.sessionId}finally{Ra.current=!1}},[]);reactExports.useEffect(()=>{Oa&&Sa(Oa)},[Oa]),reactExports.useEffect(()=>{Rr!=null&&Rr.email&&va.identify(Rr.email,{email:Rr.email})},[Rr==null?void 0:Rr.email]),reactExports.useEffect(()=>{if(!Rr)return;const qa=!!Rr.demoMode,$a=qa?La:null;va.register({source:qa?"tryout":"core",demo_mode:qa,...$a?{demo_session_id:$a}:{}})},[Rr,La]);const Fa=reactExports.useCallback(async()=>{var $a;pa(!0),xa(null);let qa=null;try{if(qa=window.open("","_blank"),!qa)throw new Error("Pop-up blocked. Please allow pop-ups and try again.");try{qa.document.open(),qa.document.write(OAUTH_POPUP_LOADING_HTML),qa.document.close()}catch(ol){log.warn("Failed to render loading state in auth popup:",ol)}const tl=await fetch(`${PROXY_URL}/api/auth/google/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:"desktop"})}),ll=await tl.json();if(!tl.ok||!ll.success||!ll.authUrl||!ll.sessionId)throw new Error(ll.error||ll.message||"Failed to start Google login");if(qa.closed)throw new Error("Sign-in window was closed before Google login started.");qa.location.href=ll.authUrl;for(let ol=0;ol<OAUTH_MAX_POLL_ATTEMPTS;ol+=1){if(qa.closed)throw new Error("Sign-in window was closed before authentication completed.");const nl=await(await fetch(`${PROXY_URL}/api/auth/google/token?session=${ll.sessionId}`)).json();if(nl.success&&nl.token&&(($a=nl.user)!=null&&$a.email)){if(!(await fetch("/api/auth/store",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:nl.user.email,token:nl.token,refreshToken:nl.refreshToken})})).ok)throw new Error("Signed in, but failed to store session locally.");if(qa.close(),(Rr==null?void 0:Rr.demoMode)===!0){await Ka({forceRefresh:!0}),window.location.reload();return}window.location.reload();return}if(nl.error&&nl.error!=="Pending")throw new Error(nl.error||"Google login failed");await new Promise(il=>setTimeout(il,OAUTH_POLL_INTERVAL_MS))}throw new Error("Authentication timed out. Please try again.")}catch(tl){qa&&!qa.closed&&qa.close();const ll=tl instanceof Error?tl.message:"Failed to start login flow";log.warn("Hosted login failed:",ll),xa(ll),pa(!1)}},[Rr==null?void 0:Rr.demoMode,Ka]),Va=(Rr==null?void 0:Rr.demoMode)===!0&&((Rr==null?void 0:Rr.agentModeAvailable)!==!0||Aa||fa),Da=reactExports.useCallback(async()=>{ba(!0);try{await Ir()}finally{ba(!1)}},[Ir]);if(reactExports.useEffect(()=>{if(!Wa)return;let qa=!1;return Ka({forceRefresh:!0}).catch($a=>{const tl=$a instanceof Error?$a.message:DEFAULT_DEMO_SESSION_ERROR_MESSAGE;log.warn("Hosted session bootstrap failed:",tl),xa(tl),toast.error(tl)}).finally(()=>{qa||Ta(!1)}),()=>{qa=!0}},[Wa,Ka]),reactExports.useEffect(()=>{const qa=()=>{const $a=window.location.hash;qr(!1),Cr(tl=>(tl.startsWith("#tokens")&&!$a.startsWith("#tokens")&&Pr(ll=>ll+1),$a))};return window.addEventListener("hashchange",qa),()=>window.removeEventListener("hashchange",qa)},[qr]),$.startsWith("#tokens"))return jsxRuntimeExports.jsx(TokenEditor,{});const Ba={pathname:window.location.pathname,configLoading:Fr,hasConfig:Rr!==null,isRetryingConfig:ya},Ga=shouldShowHostedPreConfigLoading(Ba),Ua=shouldShowHostedPreConfigError(Ba);if(Ga)return jsxRuntimeExports.jsx("div",{className:"flex h-screen items-center justify-center bg-main",children:jsxRuntimeExports.jsx("div",{className:"rounded-lg border border-divider bg-main p-6 shadow-lg",children:jsxRuntimeExports.jsx(Progress,{message:"Loading..."})})});if(Ua){const qa=Lr||"Could not load Rivet configuration.";return jsxRuntimeExports.jsx("div",{className:"flex h-screen items-center justify-center bg-main px-6",children:jsxRuntimeExports.jsxs("div",{className:"w-full max-w-md rounded-lg border border-divider bg-main p-6 text-center shadow-lg",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium text-content",children:"We could not start Rivet yet."}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-xs text-content-dim",children:qa}),jsxRuntimeExports.jsx("button",{type:"button",className:"mt-4 rounded-md border border-divider px-3 py-1.5 text-xs text-content hover:bg-main/80",onClick:()=>{Da()},children:"Retry"})]})})}return jsxRuntimeExports.jsx(MainEditor,{contactEmail:Rr==null?void 0:Rr.email,projectPath:Rr==null?void 0:Rr.projectPath,activeDemoSessionId:Ha,showLoginGate:Va,onStartLogin:Fa,isStartingLogin:fa,loginError:ga,fullPageHostedLoginProgressMessage:(Rr==null?void 0:Rr.demoMode)===!0&&fa?"Completing sign-in...":null,holdHostedTryoutPreviewNavigation:Ja,hostedTryoutPreviewHoldMessage:Ya,deferInspectorUntilPreviewReady:Za},kr)},POSTHOG_PUBLIC_API_KEY="phc_Ntj9tXHbS64XgYxlTfhglRmFivFsfm0AERph4ZlnNH",POSTHOG_PUBLIC_HOST="https://us.i.posthog.com",ErrorFallback=()=>jsxRuntimeExports.jsx("div",{style:{display:"flex",height:"100vh",alignItems:"center",justifyContent:"center"},children:jsxRuntimeExports.jsx("p",{style:{fontSize:"14px",color:"#6b7280"},children:"Something went wrong. Please reload the page."})});ReactDOM$1.createRoot(document.getElementById("root")).render(jsxRuntimeExports.jsx(React.StrictMode,{children:jsxRuntimeExports.jsx(PostHogProvider,{apiKey:POSTHOG_PUBLIC_API_KEY,options:{api_host:POSTHOG_PUBLIC_HOST,person_profiles:"always",capture_exceptions:!0,autocapture:!0,capture_pageview:!0,capture_performance:!0,persistence:"localStorage",session_recording:{maskAllInputs:!1,maskInputOptions:{password:!0},maskTextSelector:null},mask_all_text:!1,mask_all_element_attributes:!1,loaded:$=>{$.register({source:"core",rivet_version:"0.8.0",env:"production"})}},children:jsxRuntimeExports.jsx(PostHogErrorBoundary,{fallback:jsxRuntimeExports.jsx(ErrorFallback,{}),children:jsxRuntimeExports.jsx(App,{})})})}));
|
|
380
|
+
</html>`,DEMO_SESSION_CAPACITY_MESSAGE="Too many people are trying Rivet right now. Please try again in a few minutes.",DEFAULT_DEMO_SESSION_ERROR_MESSAGE="Failed to start an isolated demo session.",resolveDemoSessionErrorMessage=async $=>{if($.status===429)return DEMO_SESSION_CAPACITY_MESSAGE;try{const Cr=await $.json();if(Cr.error)return Cr.error;if(Cr.message)return Cr.message}catch{}return DEFAULT_DEMO_SESSION_ERROR_MESSAGE},MainEditor=({contactEmail:$,projectPath:Cr,activeDemoSessionId:kr=null,showLoginGate:Pr=!1,onStartLogin:Rr,isStartingLogin:Ir=!1,loginError:Fr=null,fullPageHostedLoginProgressMessage:Lr=null,holdHostedTryoutPreviewNavigation:qr=!1,hostedTryoutPreviewHoldMessage:fa=null,deferInspectorUntilPreviewReady:pa=!1})=>{const[ga,xa]=useAtom(selectedElementAtom),ya=useSetAtom(designTokensAtom),ba=useSetAtom(elementScreenshotAtom),Aa=useSetAtom(changeModeAtom),[ka,Ea]=useAtom(chatMessagesAtom),Sa=useAtomValue(modeAtom),[Ca,Ta]=useAtom(panelOpenAtom),[Ia,Ra]=reactExports.useState(!1),[ja,Oa]=useAtom(commentsAtom),La=useAtomValue(designChangeCountAtom),Ha=useAtomValue(isCommentDraftDirtyAtom),Wa=useSetAtom(commentShakeAtom),Ja=useSetAtom(panelClickVersionAtom),Za=Array.from(ja.values()).filter(Ua=>Ua.status==="pending").length+La,Na=useOAuthCallback().isProcessing?"Completing authentication...":Lr,Ka=Na!==null,Fa=reactExports.useRef((ga==null?void 0:ga.xpath)??null),Va=reactExports.useRef(!1),Da=reactExports.useRef(!1);reactExports.useEffect(()=>{if(!Cr||Va.current)return;Va.current=!0;const Ua=deserializeComments(Cr);Ua.size>0&&(Da.current=!0,Oa(Ua))},[Cr,Oa]),reactExports.useEffect(()=>{if(!(!Cr||!Va.current)){if(Da.current){Da.current=!1;return}serializeComments(ja,Cr)}},[ja,Cr]),reactExports.useEffect(()=>{(async()=>{try{const qa=await fetch("/api/tokens");if(qa.ok){const $a=await qa.json();ya($a),$a.framework&&log.info(`Loaded ${$a.framework} design tokens`)}}catch(qa){log.error("Failed to fetch design tokens:",qa)}})()},[ya]);const Ba=()=>{const Ua=document.getElementById("rivet-selection-overlay");Ua&&(Ua.style.opacity="0");const qa=document.getElementById("rivet-hover-overlay");qa&&(qa.style.opacity="0"),xa(null),ba(null)};reactExports.useEffect(()=>{if(!Pr)return;Aa("view");const Ua=document.getElementById("rivet-selection-overlay");Ua&&(Ua.style.opacity="0");const qa=document.getElementById("rivet-hover-overlay");qa&&(qa.style.opacity="0"),xa(null),ba(null),document.body.style.cursor="auto"},[Pr,Aa,ba,xa]);const Ga=reactExports.useMemo(()=>[{key:"Escape",allowInTextField:!0,handler:Ua=>{const qa=Ua.target,$a=qa.tagName.toLowerCase();if(!(($a==="input"||$a==="textarea"||$a==="select"||qa.getAttribute("contenteditable")==="true")&&Sa!=="comment")){if(qa.closest("[data-radix-popper-content-wrapper]")){log.debug("Escape key pressed inside popover - letting Radix handle it");return}if(Ha){log.debug("Escape key pressed with dirty draft comment - blocking close"),Wa(ll=>ll+1);return}log.debug("Escape key pressed - switching to view mode"),Aa("view"),Ba()}},description:"Close inspector"},{key:"c",handler:()=>{log.debug("C key pressed - switching to comment mode"),Aa("comment")},description:"Switch to comment mode"},{key:"v",handler:()=>{log.debug("V key pressed - switching to view mode"),Aa("view")},description:"Switch to view mode"},{key:"d",handler:()=>{log.debug("D key pressed - switching to design mode"),Aa("edit")},description:"Switch to design mode"}],[Sa,Ha,Aa,Wa]);return useKeyboardShortcuts({shortcuts:Ga}),reactExports.useEffect(()=>{const Ua=()=>{window.dispatchEvent(new CustomEvent("rivet:reposition-overlays"))};return window.addEventListener("resize",Ua),()=>window.removeEventListener("resize",Ua)},[]),reactExports.useEffect(()=>{const Ua=(ga==null?void 0:ga.xpath)??null,qa=Fa.current;Ua&&Ua!==qa&&(Fa.current=Ua)},[ga==null?void 0:ga.xpath]),reactExports.useEffect(()=>{Sa==="view"&&Ta(!1)},[Sa,Ta]),jsxRuntimeExports.jsxs(motion.div,{className:"relative flex h-screen overflow-hidden",initial:{opacity:0},animate:{opacity:1},transition:{duration:.5,ease:"easeOut"},"data-cy":"rivet-app",children:[Ka?jsxRuntimeExports.jsx("div",{className:"absolute inset-0 z-50 flex items-center justify-center bg-black/50",children:jsxRuntimeExports.jsx("div",{className:"rounded-lg border border-divider bg-main p-6 shadow-lg",children:jsxRuntimeExports.jsx(Progress,{message:Na})})}):null,Pr&&!Ka?jsxRuntimeExports.jsx("div",{className:"absolute inset-0 z-40 flex items-center justify-center bg-black/45 backdrop-blur-[2px]",children:jsxRuntimeExports.jsx(AuthScreenView,{isSigningIn:Ir,onStartSignIn:()=>{Rr==null||Rr()},errorMessage:Fr,displayMode:"modal"})}):null,jsxRuntimeExports.jsxs("div",{className:`relative flex min-w-0 flex-1 flex-col ${Pr?"pointer-events-none select-none":""}`,children:[jsxRuntimeExports.jsx(PreviewFrame,{holdHostedTryoutPreviewNavigation:qr,isInteractionDisabled:Pr,activeDemoSessionId:kr}),qr&&fa?jsxRuntimeExports.jsx("div",{className:"absolute inset-0 z-30 flex items-center justify-center bg-main",children:jsxRuntimeExports.jsx("div",{className:"rounded-lg border border-divider bg-main-light p-6 shadow-lg",children:jsxRuntimeExports.jsx(Progress,{message:fa})})}):null]}),Pr?null:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[pa?null:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(motion.div,{className:"h-full flex-shrink-0",animate:{width:Ca?"auto":0,opacity:Ca?1:0},transition:{ease:[.19,1,.22,1],duration:.45},style:{overflow:"hidden",willChange:"width"},onClickCapture:()=>Ja(Ua=>Ua+1),children:jsxRuntimeExports.jsx(ElementInspector,{chatMessages:ka,setChatMessages:Ea,onClose:()=>Ta(!1)})}),jsxRuntimeExports.jsx(AnimatePresence,{children:!Ca&&jsxRuntimeExports.jsx(motion.button,{initial:{opacity:0,x:8},animate:{opacity:1,x:0},exit:{opacity:0,x:8},transition:{duration:.15},onClick:()=>Ta(!0),title:"Open panel",className:"absolute right-0 top-4 z-50 rounded-l-lg border border-r-0 border-primary/30 bg-main p-2 text-content shadow-lg transition-colors",children:jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(c$3,{className:"h-4 w-4",weight:"bold"}),Za>0&&jsxRuntimeExports.jsx("span",{className:"absolute -right-1.5 -top-1.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-primary text-[9px] font-bold leading-none text-white",children:Za>9?"9+":Za})]})})})]}),jsxRuntimeExports.jsxs("button",{onClick:()=>Ra(!0),title:"Support and feedback",className:"absolute bottom-4 left-4 z-50 inline-flex items-center gap-1.5 rounded-md border border-primary/30 bg-main px-3 py-2 text-xs font-medium text-content transition-colors hover:bg-main-hover",children:[jsxRuntimeExports.jsx(s$7,{className:"h-3.5 w-3.5",weight:"bold"}),jsxRuntimeExports.jsx("span",{children:"Support"})]}),jsxRuntimeExports.jsx(SupportTicketModal,{isOpen:Ia,onClose:()=>Ra(!1),contactEmail:$})]}),jsxRuntimeExports.jsx(Toaster,{duration:5e3,richColors:!0,toastOptions:{style:{maxHeight:"150px",overflow:"hidden"}}})]})},App=()=>{const[$,Cr]=reactExports.useState(window.location.hash),[kr,Pr]=reactExports.useState(0),{config:Rr,refetchConfig:Ir,loading:Fr,error:Lr}=useConfig(),qr=useSetAtom(isCommentDraftDirtyAtom),[fa,pa]=reactExports.useState(!1),[ga,xa]=reactExports.useState(null),[ya,ba]=reactExports.useState(!1),[Aa,ka]=reactExports.useState(!1),[Ea,Sa]=reactExports.useState(null),[Ca,Ta]=reactExports.useState(!1),Ia=reactExports.useRef(!1),Ra=reactExports.useRef(!1),ja=tryExtractDemoSessionId(window.location.pathname),Oa=(Rr==null?void 0:Rr.activeDemoSessionId)??null,La=ja??Ea??Oa,Ha=reactExports.useMemo(()=>getHostedDemoPreviewSessionId(Rr==null?void 0:Rr.demoMode,Rr==null?void 0:Rr.agentModeAvailable,La),[Rr==null?void 0:Rr.demoMode,Rr==null?void 0:Rr.agentModeAvailable,La]),Wa=reactExports.useMemo(()=>getNeedsHostedSessionBootstrap({configLoading:Fr,hasConfig:Rr!==null,demoMode:Rr==null?void 0:Rr.demoMode,agentModeAvailable:Rr==null?void 0:Rr.agentModeAvailable,pathnameDemoSessionId:ja,activeDemoSessionId:Ea,configuredDemoSessionId:Oa}),[Rr,Fr,ja,Ea,Oa]);reactExports.useLayoutEffect(()=>{if(!Wa){Ta(!1);return}Ta(!0)},[Wa]);const Ja=Ca,Ya=reactExports.useMemo(()=>getHostedTryoutPreviewHoldMessage(Ja),[Ja]),Za=(Rr==null?void 0:Rr.demoMode)===!0&&Ja,Qa=reactExports.useRef(null);Qa.current=La,reactExports.useEffect(()=>{Ia.current=(Rr==null?void 0:Rr.demoMode)===!0},[Rr==null?void 0:Rr.demoMode]);const Na=reactExports.useCallback(async()=>{if(!Ia.current)return;Sa(null);const qa=await Ir();if((qa==null?void 0:qa.demoMode)===!0&&qa.agentModeAvailable!==!0){ka(!1);return}(qa==null?void 0:qa.demoMode)===!0&&ka(!0)},[Ir]);reactExports.useEffect(()=>{if((Rr==null?void 0:Rr.demoMode)===!0)return subscribeHostedDemoAuthRecovery(()=>{Na()})},[Rr==null?void 0:Rr.demoMode,Na]),reactExports.useEffect(()=>{if((Rr==null?void 0:Rr.demoMode)!==!0)return;const qa=window.fetch.bind(window);return installHostedDemoFetch401Interceptor({nativeFetch:qa,pageOrigin:window.location.origin,getShouldIntercept:()=>Ia.current})},[Rr==null?void 0:Rr.demoMode]),reactExports.useEffect(()=>{(Rr==null?void 0:Rr.agentModeAvailable)===!0&&ka(!1)},[Rr==null?void 0:Rr.agentModeAvailable]);const Ka=reactExports.useCallback(async qa=>{const $a=Qa.current;if(!(qa!=null&&qa.forceRefresh)&&$a)return $a;if(Ra.current)return"";Ra.current=!0;try{const tl=await fetch("/api/demo/session",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(!tl.ok){const ol=await resolveDemoSessionErrorMessage(tl);throw new Error(ol)}const ll=await tl.json();if(!ll.sessionId)throw new Error("Demo session response missing session id.");return Sa(ll.sessionId),ll.sessionId}finally{Ra.current=!1}},[]);reactExports.useEffect(()=>{Oa&&Sa(Oa)},[Oa]),reactExports.useEffect(()=>{Rr!=null&&Rr.email&&va.identify(Rr.email,{email:Rr.email})},[Rr==null?void 0:Rr.email]),reactExports.useEffect(()=>{if(!Rr)return;const qa=!!Rr.demoMode,$a=qa?La:null;va.register({source:qa?"tryout":"core",demo_mode:qa,...$a?{demo_session_id:$a}:{}})},[Rr,La]);const Fa=reactExports.useCallback(async()=>{var $a;pa(!0),xa(null);let qa=null;try{if(qa=window.open("","_blank"),!qa)throw new Error("Pop-up blocked. Please allow pop-ups and try again.");try{qa.document.open(),qa.document.write(OAUTH_POPUP_LOADING_HTML),qa.document.close()}catch(ol){log.warn("Failed to render loading state in auth popup:",ol)}const tl=await fetch(`${PROXY_URL}/api/auth/google/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:"desktop"})}),ll=await tl.json();if(!tl.ok||!ll.success||!ll.authUrl||!ll.sessionId)throw new Error(ll.error||ll.message||"Failed to start Google login");if(qa.closed)throw new Error("Sign-in window was closed before Google login started.");qa.location.href=ll.authUrl;for(let ol=0;ol<OAUTH_MAX_POLL_ATTEMPTS;ol+=1){if(qa.closed)throw new Error("Sign-in window was closed before authentication completed.");const nl=await(await fetch(`${PROXY_URL}/api/auth/google/token?session=${ll.sessionId}`)).json();if(nl.success&&nl.token&&(($a=nl.user)!=null&&$a.email)){if(!(await fetch("/api/auth/store",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:nl.user.email,token:nl.token,refreshToken:nl.refreshToken})})).ok)throw new Error("Signed in, but failed to store session locally.");if(qa.close(),(Rr==null?void 0:Rr.demoMode)===!0){await Ka({forceRefresh:!0}),window.location.reload();return}window.location.reload();return}if(nl.error&&nl.error!=="Pending")throw new Error(nl.error||"Google login failed");await new Promise(il=>setTimeout(il,OAUTH_POLL_INTERVAL_MS))}throw new Error("Authentication timed out. Please try again.")}catch(tl){qa&&!qa.closed&&qa.close();const ll=tl instanceof Error?tl.message:"Failed to start login flow";log.warn("Hosted login failed:",ll),xa(ll),pa(!1)}},[Rr==null?void 0:Rr.demoMode,Ka]),Va=(Rr==null?void 0:Rr.demoMode)===!0&&((Rr==null?void 0:Rr.agentModeAvailable)!==!0||Aa||fa),Da=reactExports.useCallback(async()=>{ba(!0);try{await Ir()}finally{ba(!1)}},[Ir]);if(reactExports.useEffect(()=>{if(!Wa)return;let qa=!1;return Ka({forceRefresh:!0}).catch($a=>{const tl=$a instanceof Error?$a.message:DEFAULT_DEMO_SESSION_ERROR_MESSAGE;log.warn("Hosted session bootstrap failed:",tl),xa(tl),toast.error(tl)}).finally(()=>{qa||Ta(!1)}),()=>{qa=!0}},[Wa,Ka]),reactExports.useEffect(()=>{const qa=()=>{const $a=window.location.hash;qr(!1),Cr(tl=>(tl.startsWith("#tokens")&&!$a.startsWith("#tokens")&&Pr(ll=>ll+1),$a))};return window.addEventListener("hashchange",qa),()=>window.removeEventListener("hashchange",qa)},[qr]),$.startsWith("#tokens"))return jsxRuntimeExports.jsx(TokenEditor,{});const Ba={pathname:window.location.pathname,configLoading:Fr,hasConfig:Rr!==null,isRetryingConfig:ya},Ga=shouldShowHostedPreConfigLoading(Ba),Ua=shouldShowHostedPreConfigError(Ba);if(Ga)return jsxRuntimeExports.jsx("div",{className:"flex h-screen items-center justify-center bg-main",children:jsxRuntimeExports.jsx("div",{className:"rounded-lg border border-divider bg-main p-6 shadow-lg",children:jsxRuntimeExports.jsx(Progress,{message:"Loading..."})})});if(Ua){const qa=Lr||"Could not load Rivet configuration.";return jsxRuntimeExports.jsx("div",{className:"flex h-screen items-center justify-center bg-main px-6",children:jsxRuntimeExports.jsxs("div",{className:"w-full max-w-md rounded-lg border border-divider bg-main p-6 text-center shadow-lg",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium text-content",children:"We could not start Rivet yet."}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-xs text-content-dim",children:qa}),jsxRuntimeExports.jsx("button",{type:"button",className:"mt-4 rounded-md border border-divider px-3 py-1.5 text-xs text-content hover:bg-main/80",onClick:()=>{Da()},children:"Retry"})]})})}return jsxRuntimeExports.jsx(MainEditor,{contactEmail:Rr==null?void 0:Rr.email,projectPath:Rr==null?void 0:Rr.projectPath,activeDemoSessionId:Ha,showLoginGate:Va,onStartLogin:Fa,isStartingLogin:fa,loginError:ga,fullPageHostedLoginProgressMessage:(Rr==null?void 0:Rr.demoMode)===!0&&fa?"Completing sign-in...":null,holdHostedTryoutPreviewNavigation:Ja,hostedTryoutPreviewHoldMessage:Ya,deferInspectorUntilPreviewReady:Za},kr)},POSTHOG_PUBLIC_API_KEY="phc_Ntj9tXHbS64XgYxlTfhglRmFivFsfm0AERph4ZlnNH",POSTHOG_PUBLIC_HOST="https://us.i.posthog.com",ErrorFallback=()=>jsxRuntimeExports.jsx("div",{style:{display:"flex",height:"100vh",alignItems:"center",justifyContent:"center"},children:jsxRuntimeExports.jsx("p",{style:{fontSize:"14px",color:"#6b7280"},children:"Something went wrong. Please reload the page."})});ReactDOM$1.createRoot(document.getElementById("root")).render(jsxRuntimeExports.jsx(React.StrictMode,{children:jsxRuntimeExports.jsx(PostHogProvider,{apiKey:POSTHOG_PUBLIC_API_KEY,options:{api_host:POSTHOG_PUBLIC_HOST,person_profiles:"always",capture_exceptions:!0,autocapture:!0,capture_pageview:!0,capture_performance:!0,persistence:"localStorage",session_recording:{maskAllInputs:!1,maskInputOptions:{password:!0},maskTextSelector:null},mask_all_text:!1,mask_all_element_attributes:!1,loaded:$=>{$.register({source:"core",rivet_version:"0.8.1",env:"production"})}},children:jsxRuntimeExports.jsx(PostHogErrorBoundary,{fallback:jsxRuntimeExports.jsx(ErrorFallback,{}),children:jsxRuntimeExports.jsx(App,{})})})}));
|