{"version":3,"file":"static/chunks/app/(pricing)/layout-e801ec060e13097a.js","mappings":"sFAAAA,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAC,CAAA,CAAAC,IAAA,CAAAF,EAAA,WAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,OAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,OAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,OAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,OAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,QAEAH,QAAAC,OAAA,GAAAC,IAAA,CAAAC,EAAAE,IAAA,CAAAF,EAAA,6fC1GO,IAAMG,EAAkBC,SAAAA,EAAMA,CAACC,GAAG,CAAAC,IAMzB,OAAC,CAAEC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACC,YAAY,EAC7C,OAAC,CAAEC,OAAAA,CAAM,CAAE,CAAAH,SAAMG,EAAS,OAAS,QAClC,OAAC,CAAEA,OAAAA,CAAM,CAAE,CAAAH,SAAMG,EAAS,OAAS,QACpC,OAAC,CAAEJ,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACG,IAAI,CAACC,UAAU,EAItC,OAAC,CAAEN,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACK,oBAAoB,iVCdzD,IAAMC,EAAuBX,CAAAA,EAAAA,SAAAA,EAAAA,EAAOY,EAAAA,EAAoB,EAAAV,IAEvC,OAAC,CAAEC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACQ,QAAQ,EAM1C,OAAC,CAAEV,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAMW,MAAM,CAACC,GAAG,kBCL1C,IAAMC,EAAU,OAAC,CAAEC,SAAAA,CAAQ,CAAET,KAAAA,CAAI,CAAEU,KAAAA,EAAO,OAAO,CAAgB,CAAAd,EACtE,MACE,GAAAe,EAAAC,IAAA,EAACR,EAAAA,EAAiB,YAChB,GAAAO,EAAAE,GAAA,EAACT,EAAAA,EAAoB,EAACU,QAAO,YAAEL,IAC/B,GAAAE,EAAAE,GAAA,EAACT,EAAAA,EAAmB,WAClB,GAAAO,EAAAE,GAAA,EAACV,EAAoBA,CAACO,KAAMA,EAAMK,WAAY,YAC5C,GAAAJ,EAAAE,GAAA,EAACG,EAAAA,CAAIA,CAAAA,CAACC,SAAS,IAAIC,UAAU,SAASC,MAAM,iBACzCnB,UAMb,guFCZO,IAAMoB,EAAyB5B,CAAAA,EAAAA,EAAAA,EAAAA,EAAO6B,EAAAA,EAAc,EAAAC,IAKrD,OAAC,CAAEC,SAAAA,CAAQ,CAAE,CAAA3B,EACb,GACO,YADC2B,EAEJ,MAAOC,CAAAA,EAAAA,EAAAA,EAAAA,EAAGA,IAEY,OAAC,CAAE7B,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACQ,QAAQ,EAEnC,OAAC,CAAEV,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,EAM5D,GAISC,EAAsBnC,CAAAA,EAAAA,EAAAA,EAAAA,EAAO6B,EAAAA,EAAc,EAAAO,IAEzB,OAAC,CAAEjC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACgC,QAAQ,EAE7D,OAAC,CAAEN,SAAAA,CAAQ,CAAE,CAAA3B,EACb,OAAQ2B,GACN,IAAK,UACH,MAAOC,CAAAA,EAAAA,EAAAA,EAAAA,EAAGA,IAIZ,KAAK,cACH,MAAOA,CAAAA,EAAAA,EAAAA,EAAAA,EAAGA,IAId,CACF,GAaSM,EAAyBtC,CAAAA,EAAAA,EAAAA,EAAAA,EAAO6B,EAAAA,EAAiB,EAAAU,IAW/C,OAAC,CAAEpC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACmC,SAAS,GAcvCC,EAAkCzC,EAAAA,EAAMA,CAAC0C,EAAE,CAAAC,IACzC,OAAC,CAAExC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAMyC,SAAS,CAACpC,IAAI,CAACqC,CAAC,EACzC,OAAC,CAAE1C,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACG,IAAI,CAACgC,SAAS,EACpC,OAAC,CAAErC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM2C,UAAU,CAACC,IAAI,GAKxCC,EAAyBhD,CAAAA,EAAAA,EAAAA,EAAAA,EAAO6B,EAAAA,EAAiB,EAAAoB,IAU3C,OAAC,CAAE9C,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAMyC,SAAS,CAACpC,IAAI,CAAC0C,CAAC,EAEzC,OAAC,CAAE/C,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACG,IAAI,CAAC6B,QAAQ,EAOvC,OAAC,CAAElC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACmC,SAAS,EAKnC,OAAC,CAAErC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACmC,SAAS,EA8BrCW,EAAAA,EAASA,CAGTC,EAAAA,EAAOA,uCCtI1B,IAAMC,EAAiB,OAAC,CAAEtB,SAAAA,CAAQ,CAAEd,SAAAA,CAAQ,CAAmC,CAAAb,QAC7E,gBAAI2B,EACK,GAAAZ,EAAAE,GAAA,EAACoB,EAA+BA,UAAExB,IAGzC,GAAAE,EAAAE,GAAA,EAACiC,EAAAA,CAAOA,CAAAA,CAACC,GAAG,KAAK9B,SAAS,IAAIE,MAAM,WAAWD,UAAU,gBACtDT,GAGP,EAEaY,EAAY,OAAC,CAAE2B,MAAAA,CAAK,CAAEzB,SAAAA,EAAW,SAAS,CAAE0B,aAAAA,CAAY,CAAkB,CAAArD,EACrF,MACE,GAAAe,EAAAE,GAAA,EAACO,EAAsBA,CAAC8B,KAAK,SAASC,aAAcH,CAAK,CAAC,EAAE,CAACI,KAAK,CAAEC,YAAW,GAAC9B,SAAUA,WACvF+B,MAAMC,OAAO,CAACP,IACbA,EAAMQ,MAAM,CAAG,GACfR,EAAMS,GAAG,CAAC,CAACC,EAAMC,IACf,GAAAhD,EAAAC,IAAA,EAACe,EAAmBA,CAA8BiC,MAAOF,EAAKN,KAAK,CAAE7B,SAAUA,YAC7E,GAAAZ,EAAAC,IAAA,EAACkB,EAAsBA,WACrB,GAAAnB,EAAAE,GAAA,EAACgC,EAAAA,CAAetB,SAAUA,WAAWmC,EAAKN,KAAK,GAC/C,GAAAzC,EAAAE,GAAA,EAACgD,EAAAA,EAASA,CAAAA,CAACC,OAAO,OAAOC,KAAMd,EAAe,GAAK,QAErD,GAAAtC,EAAAE,GAAA,EAAC2B,EAAsBA,UACrB,GAAA7B,EAAAE,GAAA,EAACpB,MAAAA,CACCuE,UAAU,0BACVC,wBAAyB,CAAEC,OAAQC,EAAAA,EAAMA,CAACC,KAAK,CAACV,EAAK1D,IAAI,CAAE,CAAEqE,SAAQA,EAAAA,CAAAA,EAAI,QARrD,GAAiBV,MAAAA,CAAdD,EAAKN,KAAK,CAAC,KAAOkB,MAAA,CAAJX,MAerD,yMElCA,IAAMY,EAAQ/E,EAAAA,EAAMA,CAACgF,MAAM,CAAAC,UAAA,4bASJ,OAAC,CAAE9E,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,GAuBhDgD,EAAYlF,CAAAA,EAAAA,EAAAA,EAAAA,EAAOmF,EAAAA,CAAMA,EAAAA,UAAAA,CAAAA,+FAMzBC,EAAoBpF,EAAAA,EAAMA,CAACqF,MAAM,CAAAJ,UAAA,kLAgBjCK,EAAatF,EAAAA,EAAMA,CAACqF,MAAM,CAAAJ,UAAA,iLAgB1BM,EAAOvF,EAAAA,EAAMA,CAACwF,IAAI,CAAAP,UAAA,mHAOlBQ,EAAczF,CAAAA,EAAAA,EAAAA,EAAAA,EAAO0F,EAAAA,EAAIA,EAAAA,UAAAA,CAAAA,8FAMzBC,EAAQ3F,CAAAA,EAAAA,EAAAA,EAAAA,EAAOsD,EAAAA,CAAOA,EAAAA,UAAAA,CAAAA,wEAKtBsC,EAAW5F,CAAAA,EAAAA,EAAAA,EAAAA,EAAOsD,EAAAA,CAAOA,EAAAA,UAAAA,CAAAA,8EAKzBuC,EAAQ7F,EAAAA,EAAMA,CAAC8F,IAAI,CAAAb,UAAA,kGAMnBc,EAAQ/F,EAAAA,EAAMA,CAACgG,KAAK,CAAAf,UAAA,sPAYX,OAAC,CAAE9E,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAMyC,SAAS,CAACpC,IAAI,CAAC0C,CAAC,GAO9C+C,EAAajG,EAAAA,EAAMA,CAACkG,CAAC,CAAAjB,UAAA,8KAKZ,OAAC,CAAE9E,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAMyC,SAAS,CAACpC,IAAI,CAAC2F,CAAC,GAO9CC,EAAOC,CAAAA,EAAAA,EAAAA,EAAAA,EAASA,gEAKhBC,EAAUtG,EAAAA,EAAMA,CAACC,GAAG,CAAAgF,UAAA,4LAMXmB,GAITG,EAAevG,EAAAA,EAAMA,CAACC,GAAG,CAAAgF,UAAA,oEAKlBuB,EAAaC,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,KACjC,IAAMC,EAAoBC,EAAAA,WAAiB,CAAC,KAC1CC,EAAAA,YAAYA,CAACC,QAAQ,EACvB,EAAG,EAAE,SAEL,EAAKD,YAAYA,CAACE,iBAAiB,CAE5B,GAAA3F,EAAAC,IAAA,EAAC2D,EAAAA,CACJgC,IAAK,GAAY/B,MAAAA,EAAAA,KAAAA,EAAAA,EAAQgC,SAAS,GAClCC,QAASP,YAET,GAAAvF,EAAAE,GAAA,EAAC+D,EAAAA,CACC8B,QAASR,EACTS,aAAW,wBAEX,GAAAhG,EAAAE,GAAA,EAAC+F,EAAAA,CAACA,CAAAA,CAAC7C,KAAK,SAEV,GAAApD,EAAAE,GAAA,EAACgG,EAAAA,CAAAA,MAZuC,IAc9C,GAEMC,EAAa,IACjBC,sBAAsB,IACpBvB,MAAAA,EAAAA,KAAAA,EAAAA,EAAOwB,KAAK,GAEhB,EAEMH,EAAc,KAClB,GAAM,CAACI,EAAOC,EAAS,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IAC7B,CAACC,EAAMC,EAAQ,CAAGF,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IAE3B,CAACG,EAAaC,EAAe,CAAGJ,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACzC,CAACK,EAAWC,EAAa,CAAGN,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACrC,CAACO,EAAOC,EAAS,CAAGR,CAAAA,EAAAA,EAAAA,QAAAA,EAAyB,IAE7CS,EAAoB,MAAOC,IAC/BA,EAAEC,cAAc,GAEhBL,EAAa,IACbE,EAAS,IAET,GAAI,CACF,MAAMI,CAAAA,EAAAA,EAAAA,YAAAA,EAAad,EAAO,WAC1BQ,EAAa,IACbF,EAAe,GACjB,CAAE,MAAOM,EAAG,CACVJ,EAAa,IACbE,EAASK,CAAAA,EAAAA,EAAAA,WAAAA,EAAYH,GAAGI,OAAO,EAAI,oBACrC,CACF,EAOMC,EAAmB,MAAOL,IAC9BA,EAAEC,cAAc,GAEhBL,EAAa,IACbE,EAAS,IAET,GAAI,CACF,MAAMQ,CAAAA,EAAAA,EAAAA,aAAAA,EAAclB,EAAOG,GAC3B,MAAMhB,EAAAA,YAAYA,CAACgC,aAAa,EAGlC,CAAE,MAAOP,EAAG,CACVJ,EAAa,IACbE,EAASK,CAAAA,EAAAA,EAAAA,WAAAA,EAAYH,GAAGI,OAAO,EAAI,oBACrC,CACF,EAEA,OAAO,EAwCL,GAAAtH,EAAAC,IAAA,EAACmE,EAAAA,CAAKsD,SAAUH,YACd,GAAAvH,EAAAE,GAAA,EAACiE,EAAAA,CACC5B,KAAK,SACLwD,QAjEmB,KACvBa,EAAe,IACfI,EAAS,GACX,EA+DMhB,aAAW,mBAEX,GAAAhG,EAAAE,GAAA,EAACyH,EAAAA,CAASA,CAAAA,CAACvE,KAAK,SAElB,GAAApD,EAAAE,GAAA,EAACoE,EAAAA,CAAAA,GACD,GAAAtE,EAAAE,GAAA,EAACsE,EAAAA,CAAMlE,SAAS,aAAI,mBAGpB,GAAAN,EAAAC,IAAA,EAACwE,EAAAA,CAASnE,SAAS,eAAK,iBACR,GAAAN,EAAAE,GAAA,EAAC0H,KAAAA,CAAAA,GAAI,GAAA5H,EAAAE,GAAA,EAACwE,EAAAA,UAChB4B,OAGN,GAAAtG,EAAAE,GAAA,EAAC0E,EAAAA,CACCiD,KAAK,MACLtF,KAAK,OACLuF,UAAU,UACVC,QAAQ,SACRC,SAAQ,GACRC,YAAY,yBACZrC,IAAKO,EACLlD,MAAOwD,EACPyB,SAAU,IAGRxB,EADoB7B,EADJsD,MAAM,CAAClF,KAAK,CACFmF,OAAO,CAAC,MAAO,IAAIC,KAAK,CAAC,EAAG,GAExD,EACAC,SAAUzB,IAGXE,GACC,GAAA/G,EAAAE,GAAA,EAACkF,EAAAA,UAAc2B,IAGjB,GAAA/G,EAAAE,GAAA,EAAC6D,EAAAA,CAAUxB,KAAK,SAAS+F,SAAUzB,WAChCA,EAAY,GAAA7G,EAAAE,GAAA,EAACiF,EAAAA,CAAAA,GAAa,UAG7B,GAAAnF,EAAAC,IAAA,EAAC6E,EAAAA,WAAW,yCAC4B,GAAA9E,EAAAE,GAAA,EAACqI,EAAAA,CAAIA,CAAAA,CACzCC,KAAK,oBACLL,OAAO,kBACR,qBAEM,MAAG,GAAAnI,EAAAE,GAAA,EAACqI,EAAAA,CAAIA,CAAAA,CACbC,KAAK,kBACLL,OAAO,kBACR,mBAEM,UA5FT,GAAAnI,EAAAC,IAAA,EAACmE,EAAAA,CAAKsD,SAAUT,YACd,GAAAjH,EAAAE,GAAA,EAACoE,EAAAA,CAAAA,GACD,GAAAtE,EAAAE,GAAA,EAACsE,EAAAA,CAAMlE,SAAS,aAAI,qBAGpB,GAAAN,EAAAE,GAAA,EAAC0E,EAAAA,CACCiD,KAAK,QACLtF,KAAK,QACLyF,SAAQ,GACRC,YAAY,oBACZrC,IAAKO,EACLlD,MAAOqD,EACP4B,SAAU,GAAO3B,EAASW,EAAEiB,MAAM,CAAClF,KAAK,EACxCqF,SAAUzB,IAGXE,GACC,GAAA/G,EAAAE,GAAA,EAACkF,EAAAA,UAAc2B,IAGjB,GAAA/G,EAAAE,GAAA,EAAC6D,EAAAA,CAAUxB,KAAK,SAAS+F,SAAUzB,WAChCA,EAAY,GAAA7G,EAAAE,GAAA,EAACiF,EAAAA,CAAAA,GAAa,cAG7B,GAAAnF,EAAAC,IAAA,EAAC6E,EAAAA,WAAW,yCAC4B,GAAA9E,EAAAE,GAAA,EAACqI,EAAAA,CAAIA,CAAAA,CACzCC,KAAK,oBACLL,OAAO,kBACR,qBAEM,MAAG,GAAAnI,EAAAE,GAAA,EAACqI,EAAAA,CAAIA,CAAAA,CACbC,KAAK,kBACLL,OAAO,kBACR,mBAEM,SA4DjB,qnGCtUO,IAAMM,EAA4B5J,EAAAA,EAAMA,CAACC,GAAG,CAAAC,IAQnC,OAAC,CAAEC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACQ,QAAQ,EAEpC,OAAC,CAAEV,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACgF,MAAM,CAACwE,MAAM,EAClC,OAAC,CAAE1J,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAMW,MAAM,CAACgJ,QAAQ,EAGtC,OAAC,CAAE3J,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACmC,SAAS,GAIpDuH,EAAgB/H,CAAAA,EAAAA,EAAAA,EAAAA,EAAGA,IAaD,OAAC,CAAE7B,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAAC2J,OAAO,EAKjC,OAAC,CAAE7J,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAAC2J,OAAO,GAYhDC,EAA6BjK,EAAAA,EAAMA,CAACC,GAAG,CAAAiK,IAChDH,EAKW,OAAC,CAAE5J,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAAC8J,iBAAiB,EAI3C,OAAC,CAAEhK,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAAC8J,iBAAiB,GAMjDC,EAAgCpK,CAAAA,EAAAA,EAAAA,EAAAA,EAAO6B,EAAAA,EAAiB,EAAAwI,IAE/DN,EAQS,OAAC,CAAE5J,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACG,IAAI,CAAC8J,KAAK,GAKxCnH,EAAYkD,CAAAA,EAAAA,EAAAA,EAAAA,EAASA,sEASrBjD,EAAUiD,CAAAA,EAAAA,EAAAA,EAAAA,EAASA,sEASnBkE,EAA4BvK,CAAAA,EAAAA,EAAAA,EAAAA,EAAO6B,EAAAA,EAAiB,EAAAO,IAI9Ce,EAGAC,GAKNoH,EAA4BxK,CAAAA,EAAAA,EAAAA,EAAAA,EAAO0J,EAAAA,CAAIA,EAAAA,IAIjC,OAAC,CAAEvJ,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM2C,UAAU,CAAC2H,MAAM,EAC5C,OAAC,CAAEtK,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACG,IAAI,CAACgC,SAAS,EAQtC,OAAC,CAAErC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACG,IAAI,CAAC2J,iBAAiB,EAI7D,OAAC,CAAEO,kBAAAA,CAAiB,CAAE,CAAAtK,SACtBsK,EACI1I,CAAAA,EAAAA,EAAAA,EAAAA,EAAGA,IAKqB,OAAC,CAAE7B,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAAC2J,OAAO,EAKjC,OAAC,CAAE7J,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAAC2J,OAAO,GAI7DhI,CAAAA,EAAAA,EAAAA,EAAAA,EAAGA,IAIU,OAAC,CAAE7B,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACG,IAAI,CAAC6B,QAAQ,EAKvC,OAAC,CAAElC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACG,IAAI,CAAC6B,QAAQ,IAMnD,OAAC,CAAElC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAAC8J,iBAAiB,GAK/CQ,EAA6B3K,EAAAA,EAAMA,CAACC,GAAG,CAAA2K,kqBCrK7C,IAAMC,EAAiC7K,CAAAA,EAAAA,EAAAA,EAAAA,EAAO8K,EAAAA,CAASA,EAAAA,IAQrC,OAAC,CAAE3K,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,GAQ3C6I,EAAwC/K,EAAAA,EAAMA,CAACC,GAAG,CAAA6B,IAItC,OAAC,CAAE3B,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,m0DCpBjD,IAAM8I,EAA+BhL,EAAAA,EAAMA,CAACC,GAAG,CAAAC,IAO7B,OAAC,CAAEC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,GAO3C+I,EAAkCjL,EAAAA,EAAMA,CAACC,GAAG,CAAA6B,IAG1B,OAAC,CAAE3B,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACgC,QAAQ,EAG5C,OAAC,CAAElC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,GAiBzCgJ,EAA4BlL,CAAAA,EAAAA,EAAAA,EAAAA,EAAOwB,EAAAA,CAAIA,EAAAA,IAI3B,OAAC,CAAErB,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,GAM3CiJ,EAA2BnL,EAAAA,EAAMA,CAACC,GAAG,CAAAoK,IAM3B,OAAC,CAAElK,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,EAO1B,OAAC,CAAE/B,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACgC,QAAQ,GAMnD+I,EAAuCpL,EAAAA,EAAMA,CAACC,GAAG,CAAAmC,IAKvC,OAAC,CAAEjC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,GAKzCmJ,EAA2BrL,EAAAA,EAAMA,CAACC,GAAG,CAAAsC,upBC7E3C,IAAM+I,EAA2BtL,SAAAA,EAAMA,CAACC,GAAG,CAAAC,IAK3B,OAAC,CAAEC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,EAY/B,OAAC,CAAE/B,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACsJ,EAAE,EAI/B,OAAC,CAAEpL,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,sCCd/C,IAAMsJ,EAAc/E,CAAAA,EAAAA,EAAAA,EAAAA,EAAS,QAW5BG,EAAAA,KAX6B,CAAE6E,GAAAA,CAAE,CAAE7H,MAAAA,CAAK,CAAE8H,eAAAA,CAAc,CAAoB,CAAAtL,EAC5EuL,EAAaC,CAAAA,EAAAA,EAAAA,CAAAA,EAAWF,GAE9B,MACE,GAAAvK,EAAAC,IAAA,EAACkK,EAAwBA,WACvB,GAAAnK,EAAAE,GAAA,EAACiC,EAAAA,CAAOA,CAAAA,CAACC,GAAG,KAAK9B,SAAS,KAAKE,MAAM,YAAYD,UAAU,kBACxDkC,IAEF+H,EACCF,EACA7E,EAAAA,YAAYA,CACZA,OAAAA,CAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAAA,YAAYA,CAACiF,YAAY,GAAzBjF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA2BkF,SAAS,GAApClF,KAAAA,IAAAA,EAAAA,EAAwC,aAIhD,6gBCtBO,IAAMmF,EAA8B/L,SAAAA,EAAMA,CAACC,GAAG,CAAAC,wUCA9C,IAAM8L,EAAoChM,SAAAA,EAAMA,CAACC,GAAG,CAAAC,IAMlC,OAAC,CAAEC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,uRCNjD,IAAM+J,EAAoBjM,SAAAA,EAAMA,CAACC,GAAG,CAAAC,IAKpB,OAAC,CAAEC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,uoFCF/C,IAAMgK,EAA2BlM,EAAAA,EAAMA,CAACC,GAAG,CAAAC,IAGxB,OAAC,CAAEC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAME,MAAM,CAACgF,MAAM,CAACwE,MAAM,EAC7C,OAAC,CAAE1J,MAAAA,CAAK,CAAEgM,eAAAA,CAAc,CAAE,CAAA/L,SAC5C+L,EAAiBhM,EAAME,MAAM,CAACQ,QAAQ,CAAGV,EAAME,MAAM,CAACgC,QAAQ,EAK3C,OAAC,CAAElC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,GAMzCkK,EAAyBpM,EAAAA,EAAMA,CAACC,GAAG,CAAA6B,IAOzB,OAAC,CAAE3B,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,GAWzCmK,EAAiCrM,EAAAA,EAAMA,CAACC,GAAG,CAAAiK,KAQ3CoC,EAAgCtM,EAAAA,EAAMA,CAACC,GAAG,CAAAoK,IAMhC,OAAC,CAAElK,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,GAKzCqK,EAA2BvM,CAAAA,EAAAA,EAAAA,EAAAA,EAAOwB,EAAAA,CAAIA,EAAAA,KAOtCgL,EAAuBxM,EAAAA,EAAMA,CAAC8F,IAAI,CAAAvD,IAChC,OAAC,CAAEpC,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAMyC,SAAS,CAAC6J,OAAO,CAACC,MAAM,CAAC7J,CAAC,EAIvC,OAAC,CAAE1C,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,GAMzCyK,EAA8B3M,EAAAA,EAAMA,CAACC,GAAG,CAAA0C,IAIjDiK,EAAAA,EAAeA,CAWM,OAAC,CAAEzM,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,GAMVlC,EAAAA,EAAMA,CAACC,GAAG,CAAAgD,IAKjC,OAAC,CAAE9C,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,GAK/C,IAAM2K,EAAyB7M,EAAAA,EAAMA,CAACC,GAAG,CAAA2K,KAMnCkC,EAAqC9M,EAAAA,EAAMA,CAAC+M,EAAE,CAAAC,KAM9CC,EAA+BjN,EAAAA,EAAMA,CAACkN,EAAE,CAAAC,IAUpC,OAAC,CAAEhN,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAMyC,SAAS,CAACpC,IAAI,CAAC0C,CAAC,EACzC,OAAC,CAAE/C,MAAAA,CAAK,CAAEiN,WAAAA,CAAU,CAAE,CAAAhN,SAAKD,EAAME,MAAM,CAACG,IAAI,CAAC4M,GAAc,QAAQ,+JCpHzE,IAAMxB,EAAa,IACxB,IAAMyB,EAAUC,CAAAA,EAAAA,EAAAA,EAAAA,IAEhB,MAAOC,CAAAA,EAAAA,EAAAA,WAAAA,EAAY,CAACC,EAAkBC,EAAuBC,KAC3D,GAAM,CAAEC,SAAAA,CAAQ,CAAE7B,UAAAA,CAAS,CAAE,CAAG2B,EAAQ5B,YAAY,OACpD,SAAI2B,EACK,GAAAI,EAAAvM,GAAA,EAAAuM,EAAAC,QAAA,WAAGnC,IAGRiC,IAAaH,EACf,IAAkBE,EAEd,GAAAE,EAAAxM,IAAA,EAACuL,EAAAA,EAA2BA,CAAAA,WACzBjB,EACD,GAAAkC,EAAAxM,IAAA,EAACI,EAAAA,CAAIA,CAAAA,CAACC,SAAS,IAAIE,MAAM,sBAAY,0CACKmM,CAAAA,EAAAA,EAAAA,CAAAA,EAAWN,GAAU,sBAOnE,GAAAI,EAAAxM,IAAA,EAACuL,EAAAA,EAA2BA,CAAAA,WAC1B,GAAAiB,EAAAxM,IAAA,EAAC+D,EAAAA,CAAMA,CAAAA,CAAC4I,SAAQ,GAACpE,KAAK,sBAAY,aACrB+D,KAEb,GAAAE,EAAAxM,IAAA,EAACI,EAAAA,CAAIA,CAAAA,CAACC,SAAS,IAAIE,MAAM,sBAAY,yBACZmK,EAAU,eAMzC,QAAI0B,EAEA,GAAAI,EAAAvM,GAAA,EAAC8D,EAAAA,CAAMA,CAAAA,CAAC6I,KAAMC,EAAAA,EAAOA,CAAEF,SAAQ,GAAC7G,QAAS,IAAMuG,EAAQS,OAAO,CAAC,MAAOR,EAAWL,YAAU,YAM3FG,SAAAA,EAEA,GAAAI,EAAAvM,GAAA,EAAC8D,EAAAA,CAAMA,CAAAA,CACLpD,SAAS,YACT4H,KAAK,YACLqE,KAAMG,EAAAA,EAAcA,CACpBJ,SAAQ,GACR7G,QAAS,IAAMuG,EAAQW,mBAAmB,CAAC,mBAAoBZ,EAAUE,EAAWL,YACrF,uBAKP,EAAG,EAAE,CACP,27CCjEO,IAAMgB,EAAiCrO,EAAAA,EAAMA,CAACsO,OAAO,CAAApO,KAI/CqO,EAAyCvO,EAAAA,EAAMA,CAACC,GAAG,CAAA6B,IAOzC,OAAC,CAAE3B,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,GAKzCsM,EAAwCxO,CAAAA,EAAAA,EAAAA,EAAAA,EAAO8K,EAAAA,CAASA,EAAAA,IAM5C,OAAC,CAAE3K,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,EAM/B,OAAC,CAAE/B,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAAC,MAAM,GAM/CwM,EAAqCzO,EAAAA,EAAMA,CAACC,GAAG,CAAAoK,IAIrC,OAAC,CAAElK,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,EAK/B,OAAC,CAAE/B,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,GAKzCwM,EAA8B1O,CAAAA,EAAAA,EAAAA,EAAAA,EAAOwB,EAAAA,CAAIA,EAAAA,IAK7B,OAAC,CAAErB,MAAAA,CAAK,CAAE,CAAAC,SAAKD,EAAM8B,OAAO,CAACC,EAAE,uECzDjD,IAAM2C,EAAW,GAAIF,WAAAA,EAAMA,CAACgK,QAAQ,CACrCC,EAAe/J,EAASgK,IAAI,CAClChK,EAASgK,IAAI,CAAG,CAAClF,EAAM/F,EAAOpD,IAErBsO,EADmBC,IAAI,CAAClK,EAAU8E,EAAM/F,EAAOpD,GAEnD+I,OAAO,CAAC,OAAS,iDACjBA,OAAO,CAAC,QAAU,kLCmBhB,OAAMyF,EA+BTC,oBAAoBzB,CAAkB,CAAEE,CAAmB,CAAiB,KAKpEwB,EADGC,EAHP,GAAI,CAAC,IAAI,CAACC,iBAAiB,CAAE,OAAO,KAEpC,IAAMC,EAAM,IAAI,CAACC,MAAM,CAAC9B,EAAUE,GAClC,OAAO,OAAAyB,CAAAA,EAAA,QACHD,CAAAA,EAAA,IAAI,CAACE,iBAAiB,CAACC,EAAI,GAA3BH,KAAA,IAAAA,EAAA,OAAAA,EAA6BK,MAAM,EACrCC,OAAO,GAFFL,KAAA,IAAAA,EAAAA,EAEM,IACjB,CAEAM,0BAA0C,CACtC,GAAI,CAAC,IAAI,CAACL,iBAAiB,CAAE,OAAO,KAEpC,IAAMM,EAAY,CAAE,MAAO,OAAO,CAAWzL,GAAG,CAAC,IAC7C,IAAM0L,EAAa,IAAI,CAACL,MAAM,CAAC9B,EAAU,WACnCoC,EAAY,IAAI,CAACN,MAAM,CAAC9B,EAAU,UAExC,GACI,CAAC,IAAI,CAAC4B,iBAAiB,EACvB,CAAC,IAAI,CAACA,iBAAiB,CAACO,EAAW,EACnC,CAAC,IAAI,CAACP,iBAAiB,CAACQ,EAAU,CACpC,OAAOC,IAET,IAAMC,EAAe,IACb,CAACV,iBAAiB,CAACO,EAAW,CAACJ,MAAM,CAC3CQ,QAAQ,CAMV,OAAO,EAAKC,IAJJ,CAACZ,iBAAiB,CAACQ,EAAU,CAACL,MAAM,CAC1CQ,QAAQ,CAC2B,GAERD,CACjC,GAAGG,MAAM,CAACC,GAAK,CAACC,MAAMD,WAEtB,IAAIR,EAAU1L,MAAM,CAAe,KAC5BoM,KAAKC,KAAK,CAACD,KAAKE,GAAG,IAAIZ,GAClC,CAUA,IAAIa,YAAsB,CACtB,MAAO,CAAC,CAAC,IAAI,CAACC,IAAI,CAAC/I,KAAK,CAG5B,IAAIgJ,YAAsB,KACKC,EAA3B,IAAMC,EAAAA,OAAqBD,CAAAA,EAAA,IAAI,CAACF,IAAI,CAAC3E,YAAY,GAAtB6E,KAAA,IAAAA,EAAA,OAAAA,EAAwBE,MAAM,CACzD,MAAO,CAAC,CAACD,GACLA,EAAmBE,OAAO,GAAKC,KAAKC,GAAG,EAC/C,CAEA,IAAIlF,cAA+E,CAC/E,GAAI,CAAC,IAAI,CAAC4E,UAAU,CAAE,MAAO,CAAC,EAE9B,GAAM,CAAC9C,EAAU7B,EAAU,CAAG,IAAI,CAAC0E,IAAI,CAAC3E,YAAY,CAAEmF,IAAI,CAACC,KAAK,CAAC,KAGjE,MAAO,CAAEtD,SAAAA,EAAU7B,UAAAA,EAAWoF,OAFf,IAAI,CAACV,IAAI,CAAC3E,YAAY,CAAEqF,MAAM,CAGjD,CAwDA9C,oBAAoBpF,CAAY,CAAEmI,CAAkB,CAAEzD,CAAmB,CAAEL,CAAiB,CAAQ,CAChG,IAAMgC,EAAM,IAAI,CAACC,MAAM,CAAC6B,EAAUzD,GAC9BL,GACAA,EAAQ+D,OAAO,CAACpI,EAAM,CAAEmI,SAAAA,EAAUzD,UAAAA,EAAW2B,IAAAA,CAAI,EAEzD,CAlJAgC,aAAc,MANdjC,iBAAAA,CAA8C,UAC9CtI,iBAAAA,CAA6B,QAC7B0J,IAAAA,CAAa,EAACc,EAAKA,CAEb,CAAEC,aAAc,EAAE,CAAEC,OAAQ,EAAM,EADlCC,CAAAA,EAAAA,EAAAA,eAAAA,SA+DNnC,MAAAA,CAAS,CAAC9B,EAAoBE,IACnB,GAAeA,MAAAA,CAAZF,EAAS,KAAa1I,MAAA,CAAV4I,QAG1BgE,UAAAA,CAAaC,CAAAA,EAAAA,EAAAA,EAAAA,EAAK,aACd,IAAI,CAACnB,IAAI,CAAG,KAAMoB,CAAAA,EAAAA,EAAAA,iBAAAA,GACtB,GAAE9R,IAAI,CAAC,IAAI,QAqBX+R,KAAAA,CAAQF,CAAAA,EAAAA,EAAAA,EAAAA,EAAK,YACJ,IAAI,CAACpB,UAAU,GAChB,IAAI,CAACzJ,iBAAiB,CAAG,GACzB,KAAMgL,CAAAA,EAAAA,EAAAA,EAAAA,EAAK,IAAM,CAA2B,IAA3B,IAAI,CAAChL,iBAAiB,EAE/C,GAAGhH,IAAI,CAAC,IAAI,OAEZ+G,QAAAA,CAAW8K,CAAAA,EAAAA,EAAAA,EAAAA,EAAK,YACZ,IAAI,CAAC7K,iBAAiB,CAAG,EAC7B,GAAGhH,IAAI,CAAC,IAAI,OAEZ8I,aAAAA,CAAgB+I,CAAAA,EAAAA,EAAAA,EAAAA,EAAK,YACjB,MAAM,IAAI,CAACD,UAAU,GACrB,IAAI,CAAC5K,iBAAiB,CAAG,EAC7B,GAAGhH,IAAI,CAAC,IAAI,OAEZiS,MAAAA,CAASJ,CAAAA,EAAAA,EAAAA,EAAAA,EAAK,YACN,IAAI,CAACpB,UAAU,GACf,KAAMwB,CAAAA,EAAAA,EAAAA,MAAAA,IACN,MAAM,IAAI,CAACL,UAAU,GAE7B,GAAG5R,IAAI,CAAC,IAAI,OAEZoO,OAAAA,CAAUyD,CAAAA,EAAAA,EAAAA,EAAAA,EACN,WAA+BnE,CAAkB,CAAEE,CAAmB,CAAEL,CAAiB,MAoBjF2E,EAnBJ,IAAI,CAAC5D,mBAAmB,CAAC,cAAeZ,EAAUE,EAAWL,GAC7D,IAAMgC,EAAM,IAAI,CAACC,MAAM,CAAC9B,EAAUE,GAclC,GAZK,IAAI,CAAC6C,UAAU,CAShB,IAAI,CAACnC,mBAAmB,CAAC,oBAAqBZ,EAAUE,EAAWL,IARnE,IAAI,CAACe,mBAAmB,CAAC,gBAAiBZ,EAAUE,EAAWL,GAC/D,MAAM,IAAI,CAACwE,KAAK,GACZ,IAAI,CAACtB,UAAU,CACf,IAAI,CAACnC,mBAAmB,CAAC,kBAAmBZ,EAAUE,EAAWL,GAEjE,IAAI,CAACe,mBAAmB,CAAC,kBAAmBZ,EAAUE,EAAWL,IAMrE,IAAK,CAACkD,UAAU,GAAI,IAAI,CAACE,UAAU,EAIvC,UAAIuB,CAAAA,EAAA,IAAI,CAACxB,IAAI,GAATwB,KAAA,IAAAA,EAAA,OAAAA,EAAWR,MAAM,CAAE,CACnBS,MAAM,iFACN,MACJ,CAGA,OADA,IAAI,CAAC7D,mBAAmB,CAAC,mBAAoBZ,EAAUE,EAAWL,GAC3D6E,CAAAA,EAAAA,EAAAA,YAAAA,EAAa,IAAI,CAAC1B,IAAI,CAAC/I,KAAK,CAAG4H,EAAK,OAC/C,GAAEvP,IAAI,CAAC,IAAI,GAzIXqS,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,IAAI,CAAE,CACjB/C,kBAAmBgD,EAAAA,EAAUA,CAC7BtL,kBAAmBsL,EAAAA,EAAUA,CAC7B5B,KAAM4B,EAAAA,EAAUA,CAChB7B,WAAY8B,EAAAA,EAAQA,CACpB5B,WAAY4B,EAAAA,EAAQA,CACpBxG,aAAcwG,EAAAA,EAAQA,GAGrBf,EAAAA,EAAKA,EACNgB,CAAAA,EAAAA,EAAAA,0BAAAA,IACK3S,IAAI,CAAC4S,CAAAA,EAAAA,EAAAA,EAAAA,EAAO,IACT,IAAI,CAACnD,iBAAiB,CAAGG,CAC7B,IAGH+B,EAAAA,EAAKA,GACN,IAAI,CAACI,UAAU,GACfc,YAAY,IAAI,CAACd,UAAU,CAAE,KAErC,CA8HJ,CAEO,IAAM9K,EAAe,IAAIoI","sources":["webpack://_N_E/?554b","webpack://_N_E/./src/components/elements/check-icon/check-icon.styles.ts","webpack://_N_E/./src/components/elements/tooltip/tooltip.styles.ts","webpack://_N_E/./src/components/elements/tooltip/index.tsx","webpack://_N_E/./src/components/modules/accordion/accordion.styles.ts","webpack://_N_E/./src/components/modules/accordion/index.tsx","webpack://_N_E/../src/index.ts","webpack://_N_E/./src/components/modules/login-modal/index.tsx","webpack://_N_E/./src/components/modules/table-content/table-content.styles.ts","webpack://_N_E/./src/components/sections/pricing/comparison/comparison.styles.ts","webpack://_N_E/./src/components/sections/pricing/comparison/components/features-section/features-section.styles.ts","webpack://_N_E/./src/components/sections/pricing/comparison/components/heading-plan/heading-plan.styles.ts","webpack://_N_E/./src/components/sections/pricing/comparison/components/heading-plan/index.tsx","webpack://_N_E/./src/components/sections/pricing/comparison/components/heading-section/heading-section.styles.ts","webpack://_N_E/./src/components/sections/pricing/comparison/components/mobile-comparison-card/mobile-comparison-card.styles.ts","webpack://_N_E/./src/components/sections/pricing/comparison/components/text-section/text-section.styles.ts","webpack://_N_E/./src/components/sections/pricing/plans/components/card/card.styles.ts","webpack://_N_E/./src/components/sections/pricing/plans/hooks/get-plan-cta.tsx","webpack://_N_E/./src/components/sections/text-with-accordion/text-with-accordion.styles.ts","webpack://_N_E/./src/lib/marked/link-target-render.ts","webpack://_N_E/./src/lib/store/account-store.ts"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/node_modules/next/dist/client/link.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/node_modules/next/dist/shared/lib/lazy-dynamic/dynamic-bailout-to-csr.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/node_modules/next/dist/shared/lib/lazy-dynamic/preload-css.js\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"MarqueeWrapper\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/common-sections/testimonials/components/marquee.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/common-sections/testimonials/testimonials.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"TryYourselfWrapper\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/common-sections/try-it-for-yourself/wrapper.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"BadgeWrapper\",\"AdditionalText\",\"StyledBadge\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/badge/badge.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledLink\",\"StyledButton\",\"StyledButtonWrapper\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/button/button.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledCheckIcon\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/check-icon/check-icon.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledContainer\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/container/container.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledGradient\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/gradient/gradient.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledHeading\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/heading/heading.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledAvatar\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon-avatar/icon-avatar.styles.ts\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/apple-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/bun-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/chrome-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/deno-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/docker-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/electron-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/firefox-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/github.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/java-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/linux-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/node-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/product-hunt-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/python-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/ruby-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/shipping-fast.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/square-js-logo.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/twitter-x.svg\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/icon/custom/ycombinator-logo.svg\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"MovingBorder\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/moving-border/index.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"ResponsiveLineBreak\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/responsive-line-break/index.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledSquareIcon\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/square-icon/square-icon.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledStack\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/stack/stack.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledText\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/text/text.styles.ts\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/theme-toggle/index.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"ThemedImage\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/themed-image/index.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"Tooltip\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/elements/tooltip/index.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/layout/footer/footer.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledMobileWrapper\",\"StyledNavMobileItems\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/layout/header/header-mobile/header-mobile.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"MobileDrawerMenu\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/layout/header/header-mobile/mobile-drawer-menu.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledHeader\",\"StyledHeaderContainer\",\"StyledNavigation\",\"StyledNavItems\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/layout/header/header.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"Accordion\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/modules/accordion/index.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"DownloadDropdown\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/modules/download-button/download-dropdown.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledHeadingBlockWrapper\",\"StyledHeadingBlockTitle\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/modules/heading-block/heading-block.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"LoginModal\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/modules/login-modal/index.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"Newsletter\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/modules/newsletter/index.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"PhoneAppVideoPair\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/modules/phone-app-video-pair/index.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledHeroWrapper\",\"StyledContainer\",\"StyledExcerpt\",\"StyledCTAWrapper\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/sections/cta/cta.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledPricingComparisonWrapper\",\"StyledPricingComparisonDesktopWrapper\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/sections/pricing/comparison/comparison.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledCheckedMarkWrapper\",\"StyledFeaturesSectionWrapper\",\"StyledFeatureSectionItemWrapper\",\"StyledFeatureSectionTitle\",\"StyledFeatureSectionItem\",\"StyledFeatureSectionItemTitleWrapper\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/sections/pricing/comparison/components/features-section/features-section.styles.ts\");\n;\nimport(/* webpackMode: \"eager\" */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/sections/pricing/comparison/components/heading-plan/index.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledHeadingSectionWrapper\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/sections/pricing/comparison/components/heading-section/heading-section.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledMobileComparisonCardWrapper\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/sections/pricing/comparison/components/mobile-comparison-card/mobile-comparison-card.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledTextSection\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/sections/pricing/comparison/components/text-section/text-section.styles.ts\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"StyledTextWithAccordionWrapper\",\"StyledTextWithAccordionGradientWrapper\",\"StyledTextWithAccordionContentWrapper\",\"StyledTextWithAccordionTextWrapper\",\"StyledTextWithAccordionText\"] */ \"/home/runner/work/httptoolkit-website/httptoolkit-website/src/components/sections/text-with-accordion/text-with-accordion.styles.ts\");\n","'use client';\n\nimport type { CheckIconProps } from '.';\n\nimport { styled } from '@/styles';\n\nexport const StyledCheckIcon = styled.div`\n flex-shrink: 0;\n border-radius: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: ${({ theme }) => theme.colors.blueGradient};\n width: ${({ $small }) => ($small ? '17px' : '20px')};\n height: ${({ $small }) => ($small ? '17px' : '20px')};\n color: ${({ theme }) => theme.colors.text.alwayWhite};\n box-shadow:\n 0px 1.66px 0.83px 0px rgba(201, 212, 251, 0.1) inset,\n 0px -0.83px 0.83px 0px rgba(16, 46, 151, 0.1) inset,\n 0 0 0 1px ${({ theme }) => theme.colors.borderAlwaysGradient} inset;\n`;\n","'use client';\nimport * as RadixTooltip from '@radix-ui/react-tooltip';\n\nimport { styled } from '@/styles';\n\nexport const StyledTooltipContent = styled(RadixTooltip.Content)`\n &&& {\n background-color: ${({ theme }) => theme.colors.inkBlack};\n border-radius: 8px;\n padding: 8px 12px;\n z-index: 1;\n margin-top: -12px;\n\n box-shadow: ${({ theme }) => theme.shadow.box};\n }\n`;\n","'use client';\n\nimport * as RadixTooltip from '@radix-ui/react-tooltip';\n\nimport { StyledTooltipContent } from './tooltip.styles';\nimport type { TooltipProps } from './tooltip.types';\nimport { Text } from '../text';\n\nexport const Tooltip = ({ children, text, side = 'right' }: TooltipProps) => {\n return (\n \n {children}\n \n \n \n {text}\n \n \n \n \n );\n};\n","'use client';\n\nimport * as Accordion from '@radix-ui/react-accordion';\n\nimport type { StyledAccordionProps } from './accordion.types';\nimport { slideDown, slideUp } from '../table-content/table-content.styles';\n\nimport { css, styled } from '@/styles';\n\nexport const StyledAccordionWrapper = styled(Accordion.Root)`\n &&& {\n border-radius: 8px;\n width: 100%;\n\n ${({ $variant }) => {\n switch ($variant) {\n case 'default':\n return css`\n padding: 32px 16px;\n background-color: ${({ theme }) => theme.colors.inkBlack};\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n max-width: 780px;\n padding: 32px;\n }\n `;\n }\n }}\n }\n`;\n\nexport const StyledAccordionItem = styled(Accordion.Item)`\n &&& {\n border-bottom: 1px solid ${({ theme }) => theme.colors.darkGrey};\n\n ${({ $variant }) => {\n switch ($variant) {\n case 'default':\n return css`\n padding-top: 32px;\n padding-bottom: 32px;\n `;\n case 'transparent':\n return css`\n padding-top: 24px;\n padding-bottom: 24px;\n `;\n }\n }}\n\n &:first-child {\n padding-top: 0px;\n }\n\n &:last-child {\n border-bottom: none;\n padding-bottom: 0;\n }\n }\n`;\n\nexport const StyledAccordionTrigger = styled(Accordion.Trigger)`\n &&& {\n display: flex;\n justify-content: space-between;\n background-color: transparent;\n width: 100%;\n border: none;\n padding: 0;\n cursor: pointer;\n\n &[data-state='open'] h3 {\n color: ${({ theme }) => theme.colors.lightGrey};\n }\n\n & svg {\n transition: transform 300ms;\n flex-shrink: 0;\n }\n\n &[data-state='open'] svg {\n transform: rotate(180deg);\n }\n }\n`;\n\nexport const StyledAccordionTransparentTitle = styled.h3`\n font-size: ${({ theme }) => theme.fontSizes.text.l};\n color: ${({ theme }) => theme.colors.text.lightGrey};\n font-weight: ${({ theme }) => theme.fontWeight.bold};\n text-align: left;\n line-height: 1.5;\n`;\n\nexport const StyledAccordionContent = styled(Accordion.Content)`\n &&& {\n overflow: hidden;\n\n & .accordion_content_inner {\n padding: 20px 0;\n padding-right: 48px;\n }\n\n & * {\n font-size: ${({ theme }) => theme.fontSizes.text.m};\n line-height: 1.5;\n color: ${({ theme }) => theme.colors.text.darkGrey};\n }\n\n & a {\n text-decoration: underline;\n\n &:focus {\n color: ${({ theme }) => theme.colors.lightGrey};\n }\n\n @media (hover: hover) {\n &:hover {\n color: ${({ theme }) => theme.colors.lightGrey};\n }\n }\n }\n\n & p:not(:last-child) {\n margin-bottom: 1.25rem;\n }\n\n & ul, & ol {\n list-style-position: inside;\n\n &:not(:last-child) {\n margin-bottom: 1.5rem;\n }\n }\n\n & ul {\n list-style-type: disc;\n }\n\n & ol {\n list-style-type: decimal;\n }\n\n & li:not(:last-child) {\n margin-bottom: 0.5rem;\n }\n\n &[data-state='open'] {\n animation: ${slideDown} 300ms cubic-bezier(0.87, 0, 0.13, 1);\n }\n &[data-state='closed'] {\n animation: ${slideUp} 300ms cubic-bezier(0.87, 0, 0.13, 1);\n }\n }\n`;\n","'use client';\n\nimport { marked } from 'marked';\n\nimport {\n StyledAccordionContent,\n StyledAccordionItem,\n StyledAccordionTransparentTitle,\n StyledAccordionTrigger,\n StyledAccordionWrapper,\n} from './accordion.styles';\nimport type { AccordionProps, StyledAccordionProps } from './accordion.types';\n\nimport { Heading } from '@/components/elements/heading';\nimport { CaretDown } from '@/components/elements/icon';\nimport { renderer } from '@/lib/marked/link-target-render';\n\nconst AccordionTitle = ({ $variant, children }: Component) => {\n if ($variant === 'transparent') {\n return {children};\n }\n return (\n \n {children}\n \n );\n};\n\nexport const Accordion = ({ items, $variant = 'default', isBiggerIcon }: AccordionProps) => {\n return (\n \n {Array.isArray(items) &&\n items.length > 0 &&\n items.map((item, idx) => (\n \n \n {item.title}\n \n \n \n \n \n \n ))}\n \n );\n};\n",null,"\"use client\";\n\nimport React, { useState } from 'react';\nimport styled, { keyframes } from 'styled-components';\n\nimport { asErrorLike } from '@httptoolkit/util';\nimport { sendAuthCode, loginWithCode } from '@httptoolkit/accounts';\n\nimport { accountStore } from '@/lib/store/account-store';\nimport { observer } from 'mobx-react-lite';\nimport { Heading } from '@/components/elements/heading';\nimport { Logo, X, CaretLeft } from '@/components/elements/icon';\nimport { Button } from '@/components/elements/button';\nimport { Link } from '@/components/elements/link';\n\nconst Modal = styled.dialog`\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 100;\n margin: 0;\n\n width: 90%;\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n width: auto;\n max-width: 340px;\n }\n\n background: white;\n color: black;\n\n border-radius: 16px;\n padding: 0;\n box-shadow: 0 0 0 1px var(--button-border) inset;\n\n outline: none;\n border: none;\n\n background-color: var(--dark-grey);\n\n &::backdrop {\n opacity: 0.9;\n background: radial-gradient(circle, var(--medium-grey), var(--light-grey));\n }\n`;\n\nconst CtaButton = styled(Button)`\n margin: 20px;\n width: calc(100% - 40px);\n box-sizing: border-box;\n`;\n\nconst CloseDialogButton = styled.button`\n position: absolute;\n top: 0;\n right: 0;\n padding: 16px;\n\n background: none;\n border: none;\n color: var(--light-grey);\n cursor: pointer;\n\n &:hover {\n color: var(--white);\n }\n`;\n\nconst BackButton = styled.button`\n position: absolute;\n top: 0;\n left: 0;\n padding: 16px;\n\n background: none;\n border: none;\n color: var(--light-grey);\n cursor: pointer;\n\n &:hover {\n color: var(--white);\n }\n`;\n\nconst Form = styled.form`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst HeadingLogo = styled(Logo)`\n margin: 48px 16px 16px;\n width: 30%;\n fill: var(--cinnabar-red);\n`;\n\nconst Title = styled(Heading)`\n margin: 16px 32px;\n text-align: center;\n`;\n\nconst Subtitle = styled(Heading)`\n margin: -16px 32px 16px;\n text-align: center;\n`;\n\nconst Email = styled.span`\n white-space: break-spaces;\n word-break: break-word;\n hyphens: auto;\n`;\n\nconst Input = styled.input`\n padding: 16px;\n margin: 16px 0 0;\n width: 100%;\n\n border-style: solid;\n border-color: var(--medium-grey);\n background-color: var(--ink-black);\n\n border-width: 1px 0 1px 0;\n z-index: 1;\n\n font-size: ${({ theme }) => theme.fontSizes.text.m};\n\n &:focus {\n border-color: var(--white);\n }\n`;\n\nconst SmallPrint = styled.p`\n margin: 0;\n padding: 10px 16px 12px;\n width: 100%;\n\n font-size: ${({ theme }) => theme.fontSizes.text.s};\n font-style: italic;\n\n background-color: var(--darkish-grey);\n color: var(--light-grey);\n`;\n\nconst spin = keyframes`\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n`;\n\nconst Spinner = styled.div`\n border: 4px solid rgba(0, 0, 0, 0.1);\n border-top: 4px solid #007bff;\n border-radius: 50%;\n width: 24px;\n height: 24px;\n animation: ${spin} 1s linear infinite;\n margin: 10px 0;\n`;\n\nconst ErrorMessage = styled.div`\n color: red;\n margin: 16px 20px 0;\n`;\n\nexport const LoginModal = observer(() => {\n const handleDialogClose = React.useCallback(() => {\n accountStore.endLogin();\n }, []);\n\n if (!accountStore.loginModalVisible) return null;\n\n return dialog?.showModal()}\n onClose={handleDialogClose}\n >\n \n \n \n \n ;\n});\n\nconst focusInput = (input: HTMLInputElement | null) => {\n requestAnimationFrame(() =>\n input?.focus()\n );\n}\n\nconst LoginFields = () => {\n const [email, setEmail] = useState('');\n const [code, setCode] = useState('');\n\n const [isEmailSent, setIsEmailSent] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState(false);\n\n const handleEmailSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setIsLoading(true);\n setError(false);\n\n try {\n await sendAuthCode(email, 'website');\n setIsLoading(false);\n setIsEmailSent(true);\n } catch (e) {\n setIsLoading(false);\n setError(asErrorLike(e).message || 'An error occurred');\n }\n };\n\n const handleBackButton = () => {\n setIsEmailSent(false);\n setError(false);\n };\n\n const handleCodeSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setIsLoading(true);\n setError(false);\n\n try {\n await loginWithCode(email, code);\n await accountStore.finalizeLogin();\n // We never unset isLoading - the modal disappears entirely when the\n // account store state is fully updated, and we want to spin till then.\n } catch (e) {\n setIsLoading(false);\n setError(asErrorLike(e).message || 'An error occurred');\n }\n };\n\n return !isEmailSent\n ?
\n \n \n Enter your email\n \n setEmail(e.target.value)}\n disabled={isLoading}\n />\n\n {error &&\n {error}\n }\n\n \n {isLoading ? : 'Send Code'}\n \n\n \n By creating an account you accept the \n Terms of Service\n & \n Privacy Policy\n .\n \n \n :\n
\n \n \n \n \n \n Enter the code\n \n \n sent to you at
\n { email }\n \n
\n {\n const input = e.target.value;\n const numberInput = input.replace(/\\D/g, '').slice(0, 6);\n setCode(numberInput);\n }}\n disabled={isLoading}\n />\n\n {error &&\n {error}\n }\n\n \n {isLoading ? : 'Login'}\n \n\n \n By creating an account you accept the \n Terms of Service\n & \n Privacy Policy\n .\n \n \n};\n","'use client';\n\nimport * as Accordion from '@radix-ui/react-accordion';\nimport { keyframes } from 'styled-components';\n\nimport { Link } from '@/components/elements/link';\nimport { css, styled } from '@/styles';\n\nexport const StyledTableContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n border-radius: 16px;\n padding: 16px;\n max-height: calc(100vh - 32px);\n overflow: auto;\n background: ${({ theme }) => theme.colors.inkBlack};\n box-shadow:\n 0 0 0 1px ${({ theme }) => theme.colors.button.border} inset,\n 0px 0px 24px 0px ${({ theme }) => theme.shadow.innerBox} inset;\n\n scrollbar-width: thin;\n scrollbar-color: ${({ theme }) => theme.colors.lightGrey} transparent;\n scrollbar-gutter: stable;\n`;\n\nconst TriggerStyles = css`\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n padding: 8px 16px;\n border-radius: 8px;\n background-color: transparent;\n border: none;\n width: 100%;\n\n &:focus,\n &:focus-within {\n background-color: ${({ theme }) => theme.colors.inkGrey};\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: ${({ theme }) => theme.colors.inkGrey};\n }\n }\n\n & > p,\n & > p > a {\n display: inline-block;\n width: 100%;\n text-align: left;\n }\n`;\n\nexport const StyledTableContentItemLink = styled.div`\n ${TriggerStyles}\n\n & a {\n transition: color ease-in 300ms;\n &.active {\n color: ${({ theme }) => theme.colors.electricLightBlue};\n\n p {\n transition: color ease-in 300ms;\n color: ${({ theme }) => theme.colors.electricLightBlue};\n }\n }\n }\n`;\n\nexport const StyledTableContentItemTrigger = styled(Accordion.Trigger)`\n &&& {\n ${TriggerStyles}\n\n &[data-state=open] svg {\n transform: rotate(180deg);\n }\n\n & svg {\n transition: transform 0.5s;\n color: ${({ theme }) => theme.colors.text.white};\n }\n }\n`;\n\nexport const slideDown = keyframes`\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height);\n }\n`;\n\nexport const slideUp = keyframes`\n from {\n height: var(--radix-accordion-content-height);\n }\n to {\n height: 0;\n }\n`;\n\nexport const StyledTableContentContent = styled(Accordion.Content)`\n &&& {\n overflow: hidden;\n &[data-state='open'] {\n animation: ${slideDown} 300ms cubic-bezier(0.87, 0, 0.13, 1);\n }\n &[data-state='closed'] {\n animation: ${slideUp} 300ms cubic-bezier(0.87, 0, 0.13, 1);\n }\n }\n`;\n\nexport const StyledTableContentSubitem = styled(Link)<{ $isAccordionFixed?: boolean }>`\n &&& {\n display: inline-block;\n width: 100%;\n font-weight: ${({ theme }) => theme.fontWeight.normal};\n color: ${({ theme }) => theme.colors.text.lightGrey};\n transition: all 0.1s;\n outline: none;\n border-radius: 8px;\n\n &.active {\n span,\n p {\n color: ${({ theme }) => theme.colors.text.electricLightBlue};\n }\n }\n\n ${({ $isAccordionFixed }) =>\n $isAccordionFixed\n ? css`\n padding: 8px 16px;\n\n &:focus,\n &:focus-within {\n background-color: ${({ theme }) => theme.colors.inkGrey};\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: ${({ theme }) => theme.colors.inkGrey};\n }\n }\n `\n : css`\n padding: 8px 32px;\n\n &:focus {\n color: ${({ theme }) => theme.colors.text.darkGrey};\n }\n\n @media (hover: hover) {\n &:hover {\n color: ${({ theme }) => theme.colors.text.darkGrey};\n }\n }\n `}\n\n &[data-active='true'] {\n color: ${({ theme }) => theme.colors.electricLightBlue};\n }\n }\n`;\n\nexport const TableOfContentFixedWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n`;\n","'use client';\n\nimport { Container } from '@/components/elements/container';\nimport { styled } from '@/styles';\n\nexport const StyledPricingComparisonWrapper = styled(Container)`\n &&& {\n display: flex;\n flex-direction: column;\n gap: 32px;\n padding-top: 0;\n padding-bottom: 64px;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n display: block;\n padding-top: 96px;\n padding-bottom: 96px;\n }\n }\n`;\n\nexport const StyledPricingComparisonDesktopWrapper = styled.div`\n &&& {\n display: none;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n display: block;\n }\n }\n`;\n","'use client';\n\nimport { Text } from '@/components/elements/text';\nimport { styled } from '@/styles';\n\nexport const StyledFeaturesSectionWrapper = styled.div`\n &&& {\n padding-top: 16px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n gap: 0;\n padding-top: 0;\n }\n }\n`;\n\nexport const StyledFeatureSectionItemWrapper = styled.div`\n &:not(:last-child) {\n padding-bottom: 8px;\n border-bottom: 1px solid ${({ theme }) => theme.colors.darkGrey};\n }\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n &,\n &:not(:last-child) {\n padding-top: 16px;\n padding-bottom: 16px;\n }\n\n &:first-child {\n padding-top: 0;\n }\n\n &:last-child {\n padding-bottom: 0;\n }\n }\n`;\n\nexport const StyledFeatureSectionTitle = styled(Text)`\n &&& {\n padding: 18.5px 0;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n padding-left: 32px;\n }\n }\n`;\n\nexport const StyledFeatureSectionItem = styled.div`\n display: grid;\n grid-template-columns: 1fr 52px;\n min-height: 48px;\n padding: 13.5px 0;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n grid-template-columns: repeat(4, 1fr);\n border-radius: 8px;\n transition: all 0.3;\n\n @media (hover: hover) {\n &:hover {\n background-color: ${({ theme }) => theme.colors.darkGrey};\n }\n }\n }\n`;\n\nexport const StyledFeatureSectionItemTitleWrapper = styled.div`\n display: flex;\n gap: 6px;\n align-items: center;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n padding-left: 32px;\n }\n`;\n\nexport const StyledCheckedMarkWrapper = styled.div`\n margin: auto;\n`;\n","'use client';\n\nimport { styled } from '@/styles';\n\nexport const StyledHeadingPlanWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n padding: 0 16px 32px;\n\n & [data-dropdown-wrapper='true'],\n & a[data-dropdown='true'],\n & button[data-button='true'] {\n width: 100%;\n padding-left: 0;\n padding-right: 0;\n }\n }\n\n @media (min-width: ${({ theme }) => theme.screens.xl}) {\n padding: 0 48px 32px;\n }\n\n @media (max-width: ${({ theme }) => theme.screens.lg}) {\n & *[data-heading='true'] {\n text-align: left;\n }\n }\n`;\n","'use client';\n\nimport { observer } from 'mobx-react-lite';\n\nimport { StyledHeadingPlanWrapper } from './heading-plan.styles';\nimport type { HeadingPlanProps } from './heading-plan.types';\nimport { usePlanCta } from '../../../plans/hooks/get-plan-cta';\n\nimport { Heading } from '@/components/elements/heading';\nimport { accountStore } from '@/lib/store/account-store';\n\nexport const HeadingPlan = observer(({ id, title, downloadButton }: HeadingPlanProps) => {\n const getPlanCTA = usePlanCta(downloadButton);\n\n return (\n \n \n {title}\n \n {getPlanCTA(\n id,\n accountStore,\n accountStore.subscription?.paidCycle ?? 'monthly'\n )}\n \n );\n});\n","'use client';\n\nimport { styled } from '@/styles';\n\nexport const StyledHeadingSectionWrapper = styled.div`\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n grid-template-rows: minmax(130px, fit-content);\n border-bottom: 1px solid var(--dark-grey);\n\n position: sticky;\n top: 0;\n background-color: var(--ink-grey);\n padding-top: 26px;\n\n & > *[data-text-section='true'] {\n padding-left: 32px;\n padding-right: 24px;\n }\n`;\n","'use client';\n\nimport { styled } from '@/styles';\n\nexport const StyledMobileComparisonCardWrapper = styled.div`\n &&& {\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n display: none;\n }\n }\n`;\n","'use client';\n\nimport { styled } from '@/styles';\n\nexport const StyledTextSection = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n gap: 16px;\n }\n`;\n","'use client';\nimport type { StyledPricingCardProps } from './card.types';\n\nimport { Text } from '@/components/elements/text';\nimport { DropdownWrapper } from '@/components/modules/dropdown/dropdown.styles';\nimport { styled } from '@/styles';\n\nexport const StyledPricingCardWrapper = styled.div`\n border-radius: 16px;\n padding: 16px;\n box-shadow: 0 0 0 1px ${({ theme }) => theme.colors.button.border} inset;\n background-color: ${({ theme, $isHighlighted }) =>\n $isHighlighted ? theme.colors.inkBlack : theme.colors.darkGrey};\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n gap: 32px;\n padding: 32px;\n }\n`;\n\nexport const StyledPricingCardTitle = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 16px;\n flex-wrap: wrap;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n justify-content: space-between;\n }\n\n *[data-text='true'],\n *[data-badge='true'] {\n width: fit-content;\n flex-shrink: 0;\n }\n`;\n\nexport const StyledPricingCardButtonWrapper = styled.div`\n & [data-dropdown-wrapper='true'],\n & [data-dropdown='true'],\n & [data-button='true'] {\n width: 100%;\n }\n`;\n\nexport const StyledPricingCardPriceWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n text-align: left;\n }\n`;\n\nexport const StyledPricingCardCaveats = styled(Text)`\n &&& {\n margin-top: 6px;\n font-style: italic;\n }\n`;\n\nexport const StyledPriceCardPrice = styled.span`\n font-size: ${({ theme }) => theme.fontSizes.heading.mobile.l};\n line-height: 1.1;\n margin-right: 5px;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n font-size: 56px;\n line-height: 61.6px;\n }\n`;\n\nexport const StyledPricingCardCTAWrapper = styled.div`\n display: grid;\n gap: 16px;\n\n ${DropdownWrapper} {\n width: 100%;\n\n & > * {\n width: 100%;\n }\n }\n\n *[data-text='true'] {\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n text-align: left;\n }\n }\n`;\n\nexport const StyledPriceCardFeaturesWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n gap: 32px;\n }\n`;\n\nexport const StyledPriceCardFeature = styled.div`\n display: flex;\n flex-direction: column;\n gap: 24px;\n`;\n\nexport const StyledPriceCardFeatureItemsWrapper = styled.ul`\n display: flex;\n flex-direction: column;\n gap: 16px;\n`;\n\nexport const StyledPriceCardFeatureItemLI = styled.li<{ $itemColor?: 'white' | 'darkGrey' }>`\n display: flex;\n align-items: center;\n gap: 16px;\n\n && a {\n text-decoration: underline;\n }\n\n && p {\n font-size: ${({ theme }) => theme.fontSizes.text.m};\n color: ${({ theme, $itemColor }) => theme.colors.text[$itemColor || 'white']};\n text-align: left;\n }\n`;\n","'use client';\n\nimport { upperFirst } from 'lodash-es';\nimport { usePostHog } from 'posthog-js/react';\nimport React, { useCallback } from 'react';\n\nimport { StyledPricingCardCTAWrapper } from '../components/card/card.styles';\n\nimport { Button } from '@/components/elements/button';\nimport { PaperPlaneTilt, Sparkle, Spinner } from '@/components/elements/icon';\nimport { Text } from '@/components/elements/text';\nimport type { AccountStore, Interval } from '@/lib/store/account-store';\n\n/**\n * @param {React.ReactNode} downloadButton - DrowpdownButton is a server component, so we need to provide it as a children because we cannot import directly in client component\n */\nexport const usePlanCta = (downloadButton?: React.ReactNode) => {\n const posthog = usePostHog();\n\n return useCallback((tierCode: string, account: AccountStore, planCycle: Interval) => {\n const { paidTier, paidCycle } = account.subscription;\n if (tierCode === 'free') {\n return <>{downloadButton};\n }\n\n if (paidTier === tierCode) {\n if (paidCycle === planCycle) {\n return (\n \n {downloadButton}\n \n Download now and log in to access your {upperFirst(tierCode)} subscription\n \n \n );\n }\n\n return (\n \n \n \n You already have this {paidCycle} plan.\n \n \n );\n }\n\n if (tierCode === 'pro') {\n return (\n \n );\n }\n\n if (tierCode === 'team') {\n return (\n account.reportPurchaseEvent('Select team plan', tierCode, planCycle, posthog)}\n >\n Get in touch\n \n );\n }\n }, []);\n};\n","'use client';\n\nimport { Container } from '@/components/elements/container';\nimport { Text } from '@/components/elements/text';\nimport { styled } from '@/styles';\n\nexport const StyledTextWithAccordionWrapper = styled.section`\n position: relative;\n`;\n\nexport const StyledTextWithAccordionGradientWrapper = styled.div`\n position: absolute;\n height: 100%;\n left: 0;\n top: -10px;\n z-index: -1;\n\n @media (max-width: ${({ theme }) => theme.screens.lg}) {\n display: none;\n }\n`;\n\nexport const StyledTextWithAccordionContentWrapper = styled(Container)`\n &&& {\n display: flex;\n flex-direction: column;\n gap: 32px;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n flex-direction: row;\n justify-content: space-between;\n padding: 128px 48px;\n }\n\n @media (min-width: ${({ theme }) => theme.screens['2xl']}) {\n padding: 128px 90px;\n }\n }\n`;\n\nexport const StyledTextWithAccordionTextWrapper = styled.div`\n display: flex;\n flex-direction: column;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n max-width: 375px;\n flex-shrink: 0;\n }\n\n @media (max-width: ${({ theme }) => theme.screens.lg}) {\n text-align: center;\n }\n`;\n\nexport const StyledTextWithAccordionText = styled(Text)`\n &&& {\n margin-top: 24px;\n margin-bottom: 16px;\n\n @media (min-width: ${({ theme }) => theme.screens.lg}) {\n margin-bottom: 24px;\n }\n }\n`;\n","import { marked } from 'marked';\n\nexport const renderer = new marked.Renderer();\nconst linkRenderer = renderer.link;\nrenderer.link = (href, title, text) => {\n const html = linkRenderer.call(renderer, href, title, text);\n return html\n .replace(/^/, `opens in a new tab`);\n};\n","import {\n getLastUserData,\n getLatestUserData,\n goToCheckout,\n loadPlanPricesUntilSuccess,\n SubscriptionPlans,\n TierCode,\n PricedSKU,\n User,\n logOut\n} from '@httptoolkit/accounts';\n\nimport { PostHog } from 'posthog-js';\nimport {\n makeObservable,\n observable,\n computed,\n flow,\n action,\n when\n} from 'mobx';\n\nimport { isSSR } from '../utils';\n\n// Limited interval here - tighter type than the accounts module\nexport type Interval = \"monthly\" | \"annual\";\n\nexport class AccountStore {\n\n subscriptionPlans: SubscriptionPlans | null = null;\n loginModalVisible: boolean = false;\n user: User = !isSSR\n ? getLastUserData()\n : { featureFlags: [], banned: false };\n\n constructor() {\n makeObservable(this, {\n subscriptionPlans: observable,\n loginModalVisible: observable,\n user: observable,\n isLoggedIn: computed,\n isPaidUser: computed,\n subscription: computed\n });\n\n if (!isSSR) {\n loadPlanPricesUntilSuccess()\n .then(action((prices: SubscriptionPlans) => {\n this.subscriptionPlans = prices;\n }));\n }\n\n if (!isSSR) {\n this.updateUser();\n setInterval(this.updateUser, 1000 * 60 * 10);\n }\n }\n\n getPlanMonthlyPrice(tierCode: TierCode, planCycle: Interval): string | null {\n if (!this.subscriptionPlans) return null;\n\n const sku = this.getSKU(tierCode, planCycle);\n return (\n this.subscriptionPlans[sku]?.prices as { monthly: string }\n ).monthly ?? null;\n }\n\n calculateMaxAnnualSaving(): number | null {\n if (!this.subscriptionPlans) return null;\n\n const discounts = (['pro', 'team'] as const).map((tierCode) => {\n const monthlySku = this.getSKU(tierCode, 'monthly');\n const annualSku = this.getSKU(tierCode, 'annual');\n\n if (\n !this.subscriptionPlans ||\n !this.subscriptionPlans[monthlySku] ||\n !this.subscriptionPlans[annualSku]\n ) return NaN;\n\n const monthlyTotal = (\n this.subscriptionPlans[monthlySku].prices as { rawTotal: number }\n ).rawTotal;\n const annualTotal = (\n this.subscriptionPlans[annualSku].prices as { rawTotal: number }\n ).rawTotal;\n const annualPerMonth = annualTotal / 12;\n\n return 1 - (annualPerMonth / monthlyTotal);\n }).filter(d => !isNaN(d));\n\n if (discounts.length === 0) return null;\n return Math.round(Math.max(...discounts));\n }\n\n getSKU = (tierCode: TierCode, planCycle: Interval): PricedSKU => {\n return `${tierCode}-${planCycle}` as PricedSKU;\n };\n\n updateUser = flow(function* (this: AccountStore) {\n this.user = yield getLatestUserData();\n }.bind(this));\n\n get isLoggedIn(): boolean {\n return !!this.user.email;\n }\n\n get isPaidUser(): boolean {\n const subscriptionExpiry = this.user.subscription?.expiry;\n return !!subscriptionExpiry &&\n subscriptionExpiry.valueOf() > Date.now();\n }\n\n get subscription(): { paidTier?: TierCode; paidCycle?: Interval; status?: string } {\n if (!this.isPaidUser) return {};\n\n const [paidTier, paidCycle] = this.user.subscription!.plan.split('-') as [TierCode, Interval];\n const status = this.user.subscription!.status;\n\n return { paidTier, paidCycle, status };\n }\n\n login = flow(function* (this: AccountStore) {\n if (!this.isLoggedIn) {\n this.loginModalVisible = true;\n yield when(() => this.loginModalVisible === false);\n }\n }).bind(this);\n\n endLogin = flow(function* (this: AccountStore) {\n this.loginModalVisible = false;\n }).bind(this);\n\n finalizeLogin = flow(function* (this: AccountStore) {\n yield this.updateUser();\n this.loginModalVisible = false;\n }).bind(this);\n\n logOut = flow(function* (this: AccountStore) {\n if (this.isLoggedIn) {\n yield logOut();\n yield this.updateUser();\n }\n }).bind(this);\n\n buyPlan = flow(\n function* (this: AccountStore, tierCode: TierCode, planCycle: Interval, posthog?: PostHog) {\n this.reportPurchaseEvent('Select plan', tierCode, planCycle, posthog);\n const sku = this.getSKU(tierCode, planCycle);\n\n if (!this.isLoggedIn) {\n this.reportPurchaseEvent('Login started', tierCode, planCycle, posthog);\n yield this.login();\n if (this.isLoggedIn) {\n this.reportPurchaseEvent('Login completed', tierCode, planCycle, posthog);\n } else {\n this.reportPurchaseEvent('Login cancelled', tierCode, planCycle, posthog);\n }\n } else {\n this.reportPurchaseEvent('Already logged in', tierCode, planCycle, posthog);\n }\n\n if (!this.isLoggedIn || this.isPaidUser) {\n return;\n }\n\n if (this.user?.banned) {\n alert('Your account has been blocked for abuse. Please contact help@httptoolkit.com.');\n return;\n }\n\n this.reportPurchaseEvent('Checkout started', tierCode, planCycle, posthog);\n return goToCheckout(this.user.email!, sku, 'web');\n }.bind(this)\n );\n\n reportPurchaseEvent(name: string, planName: TierCode, planCycle: Interval, posthog?: PostHog): void {\n const sku = this.getSKU(planName, planCycle);\n if (posthog) {\n posthog.capture(name, { planName, planCycle, sku });\n }\n }\n}\n\nexport const accountStore = new AccountStore();"],"names":["Promise","resolve","then","__webpack_require__","t","bind","StyledCheckIcon","styled","div","_templateObject","theme","param","colors","blueGradient","$small","text","alwayWhite","borderAlwaysGradient","StyledTooltipContent","RadixTooltip","inkBlack","shadow","box","Tooltip","children","side","jsx_runtime","jsxs","jsx","asChild","sideOffset","Text","fontSize","textAlign","color","StyledAccordionWrapper","Accordion","_templateObject1","$variant","css","screens","lg","StyledAccordionItem","_templateObject4","darkGrey","StyledAccordionTrigger","_templateObject5","lightGrey","StyledAccordionTransparentTitle","h3","_templateObject6","fontSizes","l","fontWeight","bold","StyledAccordionContent","_templateObject7","m","slideDown","slideUp","AccordionTitle","Heading","as","items","isBiggerIcon","type","defaultValue","title","collapsible","Array","isArray","length","map","item","idx","value","CaretDown","weight","size","className","dangerouslySetInnerHTML","__html","marked","parse","renderer","concat","Modal","dialog","withConfig","CtaButton","Button","CloseDialogButton","button","BackButton","Form","form","HeadingLogo","Logo","Title","Subtitle","Email","span","Input","input","SmallPrint","p","s","spin","keyframes","Spinner","ErrorMessage","LoginModal","observer","handleDialogClose","React","accountStore","endLogin","loginModalVisible","ref","showModal","onClose","onClick","aria-label","X","LoginFields","focusInput","requestAnimationFrame","focus","email","setEmail","useState","code","setCode","isEmailSent","setIsEmailSent","isLoading","setIsLoading","error","setError","handleEmailSubmit","e","preventDefault","sendAuthCode","asErrorLike","message","handleCodeSubmit","loginWithCode","finalizeLogin","onSubmit","CaretLeft","br","name","inputMode","pattern","required","placeholder","onChange","target","replace","slice","disabled","Link","href","StyledTableContentWrapper","border","innerBox","TriggerStyles","inkGrey","StyledTableContentItemLink","_templateObject2","electricLightBlue","StyledTableContentItemTrigger","_templateObject3","white","StyledTableContentContent","StyledTableContentSubitem","normal","$isAccordionFixed","TableOfContentFixedWrapper","_templateObject8","StyledPricingComparisonWrapper","Container","StyledPricingComparisonDesktopWrapper","StyledFeaturesSectionWrapper","StyledFeatureSectionItemWrapper","StyledFeatureSectionTitle","StyledFeatureSectionItem","StyledFeatureSectionItemTitleWrapper","StyledCheckedMarkWrapper","StyledHeadingPlanWrapper","xl","HeadingPlan","id","downloadButton","getPlanCTA","usePlanCta","subscription","paidCycle","StyledHeadingSectionWrapper","StyledMobileComparisonCardWrapper","StyledTextSection","StyledPricingCardWrapper","$isHighlighted","StyledPricingCardTitle","StyledPricingCardButtonWrapper","StyledPricingCardPriceWrapper","StyledPricingCardCaveats","StyledPriceCardPrice","heading","mobile","StyledPricingCardCTAWrapper","DropdownWrapper","StyledPriceCardFeature","StyledPriceCardFeatureItemsWrapper","ul","_templateObject9","StyledPriceCardFeatureItemLI","li","_templateObject10","$itemColor","posthog","usePostHog","useCallback","tierCode","account","planCycle","paidTier","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","Fragment","upperFirst","$isFluid","icon","Sparkle","buyPlan","PaperPlaneTilt","reportPurchaseEvent","StyledTextWithAccordionWrapper","section","StyledTextWithAccordionGradientWrapper","StyledTextWithAccordionContentWrapper","StyledTextWithAccordionTextWrapper","StyledTextWithAccordionText","Renderer","linkRenderer","link","html","call","AccountStore","getPlanMonthlyPrice","_this_subscriptionPlans_sku","_this_subscriptionPlans_sku_prices_monthly","subscriptionPlans","sku","getSKU","prices","monthly","calculateMaxAnnualSaving","discounts","monthlySku","annualSku","NaN","monthlyTotal","rawTotal","annualPerMonth","filter","d","isNaN","Math","round","max","isLoggedIn","user","isPaidUser","_this_user_subscription","subscriptionExpiry","expiry","valueOf","Date","now","plan","split","status","planName","capture","constructor","isSSR","featureFlags","banned","getLastUserData","updateUser","flow","getLatestUserData","login","when","logOut","_this_user","alert","goToCheckout","makeObservable","observable","computed","loadPlanPricesUntilSuccess","action","setInterval"],"sourceRoot":""}