{"version":3,"file":"6024-58ec29c7b9655c53a7a6.js","mappings":"2LAKO,SAASA,EAAYC,EAAOC,GAC/B,OAAQA,EAASD,EAAS,GAC9B,CASO,SAASE,EAA0BF,EAAOC,EAIjDE,EAAUC,GACN,IAAKJ,IAAUC,EACX,OAAO,KAEX,IAAII,EAOJ,OALIA,EADAF,GAAYC,EACD,IAAEE,EAAAA,EAAAA,IAAUP,EAAYC,EAAOC,GAASF,EAAYI,EAAUC,GAAY,OAG1E,GAAEL,EAAYC,EAAOC,OAE7BM,EAAAA,EAAAA,IAAG,4FAMQF,EAEtB,CAKO,MAAMG,EAAuBC,IAAaF,EAAAA,EAAAA,IAAG,sFAM/CE,GAAY,sC,kCC5CV,MAAMC,GAAcH,E,QAAAA,IAAG,4E,mECCvB,SAASI,EAASC,EAAOC,GAC5B,IAAKD,EACD,MAAO,GAEX,MAAME,EAAS,CACXC,OAAQH,EAAMI,WAAc,GAAEJ,EAAMI,WAAWC,OAAOL,EAAMI,WAAWE,YAASC,KAC7EN,GAEDO,EAAeC,EAAAA,UAAsBP,GAC3C,MAAQ,GAAEF,EAAMU,MAAMF,EAAgB,IAAGC,EAAAA,UAAsBP,KAAY,IAC/E,CACO,SAASS,EAAQX,EAAOY,EAAOC,EAAOC,EAAOC,EAAOb,GACvD,MAAMc,EAOV,SAAkBJ,EAAOC,EAAOC,GAC5B,MACMG,GADaL,EAAQC,IACKC,EAAQ,GACxC,MAAO,CACHD,KACGK,MAAMJ,EAAQ,GACZK,KAAK,IACLC,KAAI,CAACC,EAAGC,IAAUC,KAAKC,KAAKX,EAAQI,GAAaK,EAAQ,MAC9DV,EAER,CAjBkBa,CAASb,EAAOC,EAAOC,GACrC,OAAOE,EAAMI,KAAKM,GAAU,GAAE3B,EAASC,EAAO,CAC1CZ,MAAOsC,EACPrC,OAAQ0B,EAAQW,EAAOX,OAAQR,KAC5BL,OACDwB,MACV,CAYO,SAASC,EAAc3B,EAAOZ,EAAOC,GAExC,MADa,CAAC,EAAG,IAAK,EAAG,IAAK,GAClB+B,KAAKQ,GAAS,GAAE7B,EAASC,EAAO,CACxCZ,MAAOA,EAAQwC,EACfvC,OAAQA,EAASA,EAASuC,OAAMrB,OAC9BqB,MACV,C,oECzCO,SAASC,EAAWC,GACvB,MAAMC,EAAcD,EAAiBC,aAAeD,EAAiBE,MAAQ,YACvEC,EAAuBC,GACjBC,EAAAA,cAAoBC,EAAAA,EAAY,CAAEC,SAAUC,EAAAA,EAAcC,QAAQ,GACtEJ,EAAAA,cAAoBL,EAAkB,IAAKI,KAGnD,OADAD,EAAoBF,YAAe,cAAaA,KACzCE,CACX,C,+CCmBA,QAtBA,SAAiCO,GAAwB,IAAdC,EAAOC,UAAAC,OAAA,QAAApC,IAAAmC,UAAA,GAAAA,UAAA,GAAG,CAAC,EAClD,MAAME,GAAcC,EAAAA,EAAAA,QAAO,MACrBC,GAAUD,EAAAA,EAAAA,QAAO,MACjBE,GAAaF,EAAAA,EAAAA,QAAO,MAiB1B,OAhBAG,EAAAA,EAAAA,YAAU,KACN,GAAKD,EAAWE,QAQhB,OALAL,EAAYK,QAAU,IAAIC,qBAAqBV,EAAU,CACrDW,KAAML,EAAQG,WACXR,IAEPG,EAAYK,QAAQG,QAAQL,EAAWE,SAChC,KACyB,OAAxBL,EAAYK,SAGhBL,EAAYK,QAAQI,YAAY,CACnC,GACF,CAACb,EAAUC,IACP,CAAEM,aAAYH,cAAaE,UACtC,EC1BO,SAASQ,EAAUb,GAA8C,IAArCc,EAAOb,UAAAC,OAAA,QAAApC,IAAAmC,UAAA,IAAAA,UAAA,GAAUc,EAAUd,UAAAC,OAAA,QAAApC,IAAAmC,UAAA,IAAAA,UAAA,GAC1D,MAAOe,EAAQC,IAAaC,EAAAA,EAAAA,WAAS,IAC/B,WAAEZ,GAAea,GAAyBC,IACxCA,EAAQ,GAAGC,eACXJ,GAAU,IAEO,IAAZH,GACLG,GAAU,EACd,GACDjB,GACH,MAAO,CAACM,IAAYS,GAAoBC,EAC5C,C,kGCPA,MAAMM,EAAOC,EAAAA,GAAOC,IAAGC,WAAA,CAAAnC,YAAA,qBAAAoC,YAAA,eAAVH,CAAU,MACjBI,GAAgBzE,EAAAA,EAAAA,IAAG,2nCAEH0E,EAAAA,EAAMC,UAAUC,IAC3BF,EAAAA,EAAMG,QAAQC,QAKnBC,EAAAA,EAAAA,IAAW,aAQOL,EAAAA,EAAMG,QAAQG,SAUVN,EAAAA,EAAMG,QAAQC,OACzBJ,EAAAA,EAAMG,QAAQG,SAKDN,EAAAA,EAAMG,QAAQC,OACzBJ,EAAAA,EAAMG,QAAQG,SASLN,EAAAA,EAAMG,QAAQC,OACzBJ,EAAAA,EAAMG,QAAQG,SAKDN,EAAAA,EAAMG,QAAQC,OACzBJ,EAAAA,EAAMG,QAAQG,SAMVN,EAAAA,EAAMG,QAAQC,OAIXJ,EAAAA,EAAMG,QAAQC,OASZJ,EAAAA,EAAMG,QAAQG,SAKZN,EAAAA,EAAMG,QAAQG,SAQhBN,EAAAA,EAAMG,QAAQG,SAKZN,EAAAA,EAAMG,QAAQG,SAMrBN,EAAAA,EAAMG,QAAQG,SAIXN,EAAAA,EAAMG,QAAQG,SAMdN,EAAAA,EAAMG,QAAQG,SAWhBN,EAAAA,EAAMG,QAAQG,UAOhCC,GAAgBjF,EAAAA,EAAAA,IAAG,wnDAMnB+E,EAAAA,EAAAA,IAAW,aAQOL,EAAAA,EAAMG,QAAQG,SAMzBN,EAAAA,EAAMG,QAAQC,OACHJ,EAAAA,EAAMG,QAAQC,OAOdJ,EAAAA,EAAMG,QAAQC,OACVJ,EAAAA,EAAMG,QAAQC,OACzBJ,EAAAA,EAAMG,QAAQG,SAKLN,EAAAA,EAAMG,QAAQC,OACVJ,EAAAA,EAAMG,QAAQC,OACzBJ,EAAAA,EAAMG,QAAQG,SASTN,EAAAA,EAAMG,QAAQC,OACVJ,EAAAA,EAAMG,QAAQC,OACzBJ,EAAAA,EAAMG,QAAQG,SAKLN,EAAAA,EAAMG,QAAQC,OACVJ,EAAAA,EAAMG,QAAQC,OACzBJ,EAAAA,EAAMG,QAAQG,SAMVN,EAAAA,EAAMG,QAAQC,OAIXJ,EAAAA,EAAMG,QAAQC,OAK3BJ,EAAAA,EAAMG,QAAQG,SACHN,EAAAA,EAAMG,QAAQG,SAOVN,EAAAA,EAAMG,QAAQG,SACzBN,EAAAA,EAAMG,QAAQC,OAMDJ,EAAAA,EAAMG,QAAQG,SACzBN,EAAAA,EAAMG,QAAQC,OAULJ,EAAAA,EAAMG,QAAQG,SACzBN,EAAAA,EAAMG,QAAQC,OAKDJ,EAAAA,EAAMG,QAAQG,SACzBN,EAAAA,EAAMG,QAAQC,OAMVJ,EAAAA,EAAMG,QAAQG,SAIXN,EAAAA,EAAMG,QAAQG,UAgDlCE,GAAmBlF,EAAAA,EAAAA,IAAG,mwCAMtB+E,EAAAA,EAAAA,IAAW,aAQOL,EAAAA,EAAMC,UAAUC,IAM3BF,EAAAA,EAAMG,QAAQC,OACHJ,EAAAA,EAAMG,QAAQC,OAGfJ,EAAAA,EAAMG,QAAQC,OAKxBJ,EAAAA,EAAMG,QAAQG,SACHN,EAAAA,EAAMG,QAAQG,SAMrBN,EAAAA,EAAMG,QAAQC,OAMZJ,EAAAA,EAAMG,QAAQC,OAShBJ,EAAAA,EAAMG,QAAQC,OAKZJ,EAAAA,EAAMG,QAAQC,OAMVJ,EAAAA,EAAMG,QAAQG,SAIXN,EAAAA,EAAMC,UAAUC,IAehBF,EAAAA,EAAMC,UAAUC,IACpBF,EAAAA,EAAMC,UAAUC,IAUVF,EAAAA,EAAMC,UAAUC,IACpBF,EAAAA,EAAMC,UAAUC,IAadF,EAAAA,EAAMC,UAAUC,IACpBF,EAAAA,EAAMC,UAAUC,IASVF,EAAAA,EAAMC,UAAUC,IACpBF,EAAAA,EAAMC,UAAUC,KASlCO,EAAOd,EAAAA,GAAOC,IAAGC,WAAA,CAAAnC,YAAA,qBAAAoC,YAAA,eAAVH,CAAU,gGACnBU,EAAAA,EAAAA,IAAW,aAIJL,EAAAA,EAAMC,UAAUC,KAQrBQ,EAAQf,EAAAA,GAAOC,IAAGC,WAAA,CAAAnC,YAAA,sBAAAoC,YAAA,eAAVH,CAAU,0DACpBU,EAAAA,EAAAA,IAAW,cASTM,GAAiBrF,EAAAA,EAAAA,IAAG,6mBAKf0E,EAAAA,EAAMG,QAAQC,OAIZJ,EAAAA,EAAMG,QAAQG,SAGvBZ,EAcIe,EAIAC,EAQED,EAIAC,EAWFD,EAIAC,EAOED,EAIAC,GAOJE,EAAOjB,EAAAA,GAAOC,IAAGC,WAAA,CAAAnC,YAAA,qBAAAoC,YAAA,eAAVH,CAAU,iJAejBkB,EAASlB,EAAAA,GAAOmB,OAAMjB,WAAA,CAAAnC,YAAA,uBAAAoC,YAAA,eAAbH,CAAa,gcACxBU,EAAAA,EAAAA,IAAW,0CAGGU,EAAAA,EAAAA,IAAM,GAAI,KAChBA,EAAAA,EAAAA,IAAM,GAAI,IAMlBrB,EACEsB,EAAAA,EAAMC,eAAeC,QAEVH,EAAAA,EAAAA,IAAM,GAAI,KACRA,EAAAA,EAAAA,IAAM,GAAI,KAiBlBI,EAAAA,EAAAA,IAAMC,EAAAA,GAAOC,cAClBhB,EAAAA,EAAAA,IAAW,qDAgBbiB,IAAkB,IAAjB,SAAEC,GAAUD,EACb,OAAQC,GACJ,IAAK,WACD,OAAOZ,EACX,IAAK,QACD,OAAOZ,EACX,IAAK,UACD,OAAOQ,EACX,IAAK,cACD,OAAOC,EAGf,IAGEgB,EAAc7B,EAAAA,GAAOmB,OAAMjB,WAAA,CAAAnC,YAAA,4BAAAoC,YAAA,eAAbH,CAAa,sXAMtBoB,EAAAA,EAAAA,IAAM,GAAI,KACTA,EAAAA,EAAAA,IAAM,GAAI,IAEKf,EAAAA,EAAMG,QAAQC,QAqB3BW,EAAAA,EAAAA,IAAM,GAAI,KAIbI,EAAAA,EAAAA,IAAMC,EAAAA,GAAOC,cAClBhB,EAAAA,EAAAA,IAAW,YAAa,MAOxBoB,EAAc9B,EAAAA,GAAOC,IAAGC,WAAA,CAAAnC,YAAA,4BAAAoC,YAAA,eAAVH,CAAU,oWAC1BU,EAAAA,EAAAA,IAAW,aAEuBL,EAAAA,EAAMG,QAAQC,QAErCW,EAAAA,EAAAA,IAAM,GAAI,KACdA,EAAAA,EAAAA,IAAM,GAAI,KACTA,EAAAA,EAAAA,IAAM,GAAI,IAKlBS,EAOAA,GACaT,EAAAA,EAAAA,IAAM,GAAI,IAIrBS,GACaT,EAAAA,EAAAA,IAAM,GAAI,KAIlBI,EAAAA,EAAAA,IAAMC,EAAAA,GAAOC,cACPN,EAAAA,EAAAA,IAAM,GAAI,KAoFdW,EAAe,CACxBhB,QACAc,cACAX,SACAc,WArFehC,EAAAA,GAAOC,IAAGC,WAAA,CAAAnC,YAAA,2BAAAoC,YAAA,eAAVH,CAAU,+XACzBU,EAAAA,EAAAA,IAAW,aAKXmB,EAKEA,EAKFA,EAKEA,GAKKL,EAAAA,EAAAA,IAAMC,EAAAA,GAAOC,aAGlBG,GAyDFC,cACAG,UArDcjC,EAAAA,GAAOC,IAAGC,WAAA,CAAAnC,YAAA,0BAAAoC,YAAA,eAAVH,CAAU,qpBACxBU,EAAAA,EAAAA,IAAW,aASuBL,EAAAA,EAAMG,QAAQC,OAEhDoB,EAOAA,EAKEA,EAKFA,EAKEA,GAKKL,EAAAA,EAAAA,IAAMC,EAAAA,GAAOC,aAGlBG,GAYFZ,OACAlB,OACAe,O,0GChvBJ,MAAMI,EAASS,IAAuI,IAAtI,SAAEC,EAAQ,UAAEM,EAAS,SAAEC,EAAQ,MAAEC,EAAK,SAAEC,GAAW,EAAK,KAAEC,EAAO,SAAQ,QAAEC,EAAO,KAAEC,EAAI,aAAEC,EAAe,WAAYC,GAAYf,EAC7I,OAAQxD,EAAAA,cAAoBwE,EAAAA,GAAW,CAAEC,eAAgB,cACrDzE,EAAAA,cAAoB4D,EAAAA,EAAab,OAAQ,CAAEgB,UAAWA,EAAWN,SAAUA,EAAUO,SAAUA,EAAUG,KAAMA,EAAMC,QAASA,EAAS,iBAAkBF,EAAU,gBAAiBT,KAAac,GAChL,aAAbd,GAA4BzD,EAAAA,cAAoB4D,EAAAA,EAAajB,KAAM,MAAM+B,EAAAA,EAAAA,GAAiBC,EAAAA,EAAWC,QACrG5E,EAAAA,cAAoB4D,EAAAA,EAAahC,KAAM,KAAMqC,GAC7CI,EAAQrE,EAAAA,cAAoB4D,EAAAA,EAAad,KAAM,CAAE,gBAAiBwB,GAAgBD,GAAsB,aAAbZ,EAA2BzD,EAAAA,cAAoB4D,EAAAA,EAAahB,MAAO,MAAM8B,EAAAA,EAAAA,GAAiBC,EAAAA,EAAWE,aAAgB,MAAM,EAE5NC,EAAaC,IAAiF,IAAhF,SAAEtB,EAAQ,UAAEM,EAAS,MAAEE,EAAK,KAAEI,EAAI,aAAEC,EAAe,WAAYC,GAAYQ,EAC3F,OAAQ/E,EAAAA,cAAoB4D,EAAAA,EAAab,OAAQ,CAAEgB,UAAWA,EAAWN,SAAUA,EAAUuB,GAAI,UAAWT,GAC3F,aAAbd,GAA4BzD,EAAAA,cAAoB4D,EAAAA,EAAajB,KAAM,MAAM+B,EAAAA,EAAAA,GAAiBC,EAAAA,EAAWC,QACrG5E,EAAAA,cAAoB4D,EAAAA,EAAahC,KAAM,KAAMqC,GAC7CI,EAAQrE,EAAAA,cAAoB4D,EAAAA,EAAad,KAAM,CAAE,gBAAiBwB,GAAgBD,GAAsB,aAAbZ,EAA2BzD,EAAAA,cAAoB4D,EAAAA,EAAahB,MAAO,MAAM8B,EAAAA,EAAAA,GAAiBC,EAAAA,EAAWE,aAAgB,KAAK,EAEvNI,EAAaC,IAAyG,IAAxG,SAAEzB,EAAQ,UAAEM,EAAS,KAAEoB,EAAI,OAAEC,EAAS,QAAO,MAAEnB,EAAK,KAAEI,EAAI,aAAEC,EAAe,WAAYC,GAAYW,EACnH,OAAQlF,EAAAA,cAAoBwE,EAAAA,GAAW,CAAEC,eAAgB,cACrDzE,EAAAA,cAAoB4D,EAAAA,EAAab,OAAQ,CAAEgB,UAAWA,EAAWiB,GAAI,IAAKvB,SAAUA,EAAU0B,KAAMA,EAAMC,OAAQA,KAAWb,GAC5G,aAAbd,GAA4BzD,EAAAA,cAAoB4D,EAAAA,EAAajB,KAAM,MAAM+B,EAAAA,EAAAA,GAAiBC,EAAAA,EAAWC,QACrG5E,EAAAA,cAAoB4D,EAAAA,EAAahC,KAAM,KAAMqC,GAC7CI,EAAQrE,EAAAA,cAAoB4D,EAAAA,EAAad,KAAM,CAAE,gBAAiBwB,GAAgBD,GAAsB,aAAbZ,EAA2BzD,EAAAA,cAAoB4D,EAAAA,EAAahB,MAAO,MAAM8B,EAAAA,EAAAA,GAAiBC,EAAAA,EAAWE,aAAgB,MAAM,EAE5NnB,EAAc2B,IAAqD,IAApD,UAAEC,EAAS,SAAEtB,EAAQ,QAAEI,KAAYG,GAAYc,EAChE,OAAQrF,EAAAA,cAAoBwE,EAAAA,GAAW,CAAEC,eAAgB,cACrDzE,EAAAA,cAAoB4D,EAAAA,EAAaF,YAAa,CAAE,aAAc4B,EAAWtB,SAAUA,EAAUI,QAASA,KAAYG,GAC9GvE,EAAAA,cAAoB4D,EAAAA,EAAaD,YAAa,KAC1C3D,EAAAA,cAAoB4D,EAAAA,EAAaC,WAAY,MACzCa,EAAAA,EAAAA,GAAiBC,EAAAA,EAAWY,SAC5BvF,EAAAA,cAAoB4D,EAAAA,EAAaE,UAAW,SAAS,C,4GCvBzE,MAoCA,EAJuB,CACnB0B,UAjCc3D,EAAAA,GAAOC,IAAGC,WAAA,CAAAnC,YAAA,4BAAAoC,YAAA,gBAAVH,CAAU,gDACxB4D,EAAAA,GAGSC,EAAAA,EAAOC,eAAiB,GA8BjC5C,OA3BWlB,EAAAA,GAAOmB,OAAMjB,WAAA,CAAAnC,YAAA,yBAAAoC,YAAA,gBAAbH,CAAa,+UACxBlE,EAAAA,GACA4E,EAAAA,EAAAA,IAAW,sBACXqD,EAAAA,GAQkC1D,EAAAA,EAAMG,QAAQG,SACzBN,EAAAA,EAAMG,QAAQC,OAQJJ,EAAAA,EAAMG,QAAQG,U,8EC9BnD,MA0CA,EA1CiBgB,IAAyB,IAAxB,KAAEW,EAAO,UAAUX,EACjC,MAAMqC,EAAM7F,EAAAA,OAAa,MACzB,OAAQA,EAAAA,cAAoB8F,EAAAA,EAAEN,UAAW,KACrCxF,EAAAA,cAAoBwE,EAAAA,GAAW,CAAEC,eAAgB,cAC7CzE,EAAAA,cAAoB8F,EAAAA,EAAE/C,OAAQ,CAAE8C,IAAKA,EAAKzB,QAASA,KAC9B,WAATD,EAOpB,WACI,MAAM4B,EAAWC,SAASC,eAAe,QACpCF,KAGLG,EAAAA,EAAAA,IAAeH,GACfI,EAAUJ,GACd,CAboBK,GAcpB,WAAuB,IAAAC,EAAAC,EACnB,IAAIC,EAAuB,QAAdF,EAAGR,EAAI/E,eAAO,IAAAuF,OAAA,EAAXA,EAAaG,QAAQ,iCAErB,IAAAC,EAAXF,IACDA,EAAuB,QAAdE,EAAGZ,EAAI/E,eAAO,IAAA2F,OAAA,EAAXA,EAAaD,QAAQ,YAErC,IAAIT,EAAoB,QAAZO,EAAGC,SAAS,IAAAD,OAAA,EAATA,EAAWI,mBAEX,IAAAC,EAAAC,EAAVb,IACDA,EAAoB,QAAZY,EAAGJ,SAAS,IAAAI,GAAe,QAAfC,EAATD,EAAWE,qBAAa,IAAAD,OAAf,EAATA,EAA0BF,oBAEpCX,KAGLG,EAAAA,EAAAA,IAAeH,GACfI,EAAUJ,GACd,CA3BoBe,EACJ,GACU,WAAT3C,EAAoBnE,EAAAA,cAAoBA,EAAAA,SAAgB,KAAM,wBAA0BA,EAAAA,cAAoBA,EAAAA,SAAgB,KAAM,2BA0BnJ,SAASmG,EAAUY,GAAI,IAAAC,EAEP,QAAZA,EADkBD,EAAGE,iBAAiB,UAC5B,UAAE,IAAAD,GAAZA,EAAcE,OAClB,E,kGCtCJ,MAAM1B,EAAY3D,EAAAA,GAAOsF,QAAOpF,WAAA,CAAAnC,YAAA,kCAAAoC,YAAA,eAAdH,CAAc,opCACPoB,EAAAA,EAAAA,IAAM,GAAI,KACPA,EAAAA,EAAAA,IAAM,GAAI,IAElBf,EAAAA,EAAMkF,KAAK5E,SACfN,EAAAA,EAAMG,QAAQC,OACVJ,EAAAA,EAAMkF,KAAK9E,OAQbJ,EAAAA,EAAMG,QAAQG,SACVN,EAAAA,EAAMkF,KAAK5E,SACfN,EAAAA,EAAMG,QAAQC,OACVJ,EAAAA,EAAMkF,KAAK9E,OAIfJ,EAAAA,EAAMG,QAAQC,OACVJ,EAAAA,EAAMkF,KAAK9E,OACfJ,EAAAA,EAAMG,QAAQG,SACVN,EAAAA,EAAMkF,KAAK5E,UAYpB6E,EAAAA,EAAAA,IAAK/D,EAAAA,GAAOgE,SAQZD,EAAAA,EAAAA,IAAK/D,EAAAA,GAAOgE,SASZD,EAAAA,EAAAA,IAAK/D,EAAAA,GAAOgE,SAoDzB,EAN6B,CACzB9B,YACA+B,MArBU1F,EAAAA,GAAOC,IAAGC,WAAA,CAAAnC,YAAA,8BAAAoC,YAAA,eAAVH,CAAU,2IAMpB2D,GAgBAgC,SAZa3F,EAAAA,GAAOC,IAAGC,WAAA,CAAAnC,YAAA,iCAAAoC,YAAA,eAAVH,CAAU,QACvB4D,EAAAA,IAYAgC,YAVgB5F,EAAAA,GAAOmB,OAAMjB,WAAA,CAAAnC,YAAA,oCAAAoC,YAAA,eAAbH,CAAa,0BAC7BlE,EAAAA,G,gDCnGJ,MAAM+J,EAAmB1H,EAAAA,cAAoB,CAAC,G,wBCG9C,MAAM2H,EAAiB3H,EAAAA,YAAiB,CAACD,EAAO8F,KAC5C,MAAM,SAAE+B,EAAQ,OAAEC,EAAS,UAAS,MAAEC,EAAQ,OAAM,QAAEC,EAAU,OAAM,eAAEC,KAAmBzD,GAAexE,EACpGkI,EDKwBjI,EAAAA,WAAiB0H,GCJ/C,OAAQ1H,EAAAA,cAAoB8F,EAAAA,EAAEN,UAAW,CAAEK,IAAKA,EAAKqC,GAAID,EAAUC,GAAI,6BAA8BD,EAAUC,GAAI,aAAcJ,EAAO,eAAgBC,EAAS,iBAAkBC,KAAmBzD,GAClMvE,EAAAA,cAAoB8F,EAAAA,EAAEyB,MAAO,KACxBS,EAAuDhI,EAAAA,cAAoB8F,EAAAA,EAAE2B,YAAa,CAAE,aAAc,2BAAzFzH,EAAAA,cAAoBmI,EAAAA,EAAU,MAGrC,cAAXN,EACOD,EAEJ5H,EAAAA,cAAoB8F,EAAAA,EAAE0B,SAAU,KAAMI,IACjD,IAEJD,EAAe/H,YAAc,iBAC7B,S,gPCRA,MAAM4F,GAAY3D,EAAAA,EAAAA,IAAO8F,EAAAA,GAAe5F,WAAA,CAAAnC,YAAA,oCAAAoC,YAAA,eAAtBH,CAAsB,oFACpCuG,EAAAA,EAAqBZ,SACnBa,EAAAA,IAKKhB,EAAAA,EAAAA,IAAK/D,EAAAA,GAAOgE,SAMjBgB,GAAe9K,EAAAA,EAAAA,IAAG,iEAGb6J,EAAAA,EAAAA,IAAK/D,EAAAA,GAAOgE,SAIjBiB,EAAiB1G,EAAAA,GAAOC,IAAGC,WAAA,CAAAnC,YAAA,yCAAAoC,YAAA,eAAVH,CAAU,2NAC7ByG,EAEA1E,EAAAA,EAAab,QACHE,EAAAA,EAAAA,IAAM,GAAI,IAGpBuC,GAIO6B,EAAAA,EAAAA,IAAK/D,EAAAA,GAAOgE,QACjB9B,GAMSvC,EAAAA,EAAAA,IAAM,GAAI,KAIVA,EAAAA,EAAAA,IAAM,GAAI,MAGnBuF,EAAU3G,EAAAA,GAAOC,IAAGC,WAAA,CAAAnC,YAAA,kCAAAoC,YAAA,eAAVH,CAAU,SACtB4G,EAAAA,IAEEC,EAAe7G,EAAAA,GAAOC,IAAGC,WAAA,CAAAnC,YAAA,uCAAAoC,YAAA,eAAVH,CAAU,oZAC3ByG,EAQA9C,GAIO6B,EAAAA,EAAAA,IAAK/D,EAAAA,GAAOgE,QACjB9B,EAKAA,EAIAA,EAKAA,GAKAmD,EAAe9G,EAAAA,GAAOC,IAAGC,WAAA,CAAAnC,YAAA,uCAAAoC,YAAA,eAAVH,CAAU,4CACpBwF,EAAAA,EAAAA,IAAK/D,EAAAA,GAAOsF,eAKjBC,GAAiBhH,EAAAA,EAAAA,IAAOiH,EAAAA,EAAEhH,KAAIC,WAAA,CAAAnC,YAAA,yCAAAoC,YAAA,eAAbH,CAAa,qIAE9B1E,EAAAA,EAAAA,IAA0B,IAAK,MAI/BA,EAAAA,EAAAA,IAA0B,IAAK,KAGjC4L,EAAAA,IAKEC,EAAOnH,EAAAA,GAAOC,IAAGC,WAAA,CAAAnC,YAAA,+BAAAoC,YAAA,eAAVH,CAAU,6GAsBvB,EAV+B,CAC3B2D,YACAgD,UACAD,iBACAU,MAPUpH,EAAAA,GAAOqH,IAAGnH,WAAA,CAAAnC,YAAA,gCAAAoC,YAAA,eAAVH,CAAU,UACpBpE,EAAAA,EAAAA,OAOAoL,iBACAF,eACAD,eACAM,QC3FJ,GAAetJ,EAAAA,EAAAA,IAjCWK,IAAU,IAAAoJ,EAChC,MAAMC,EAAiC,cAApBrJ,EAAMsJ,UAA4B,IAAM,IACrDC,EAAkC,cAApBvJ,EAAMsJ,UAA4B,IAAM,IACtDE,EAAOxJ,EAAMlC,OACbW,EAAAA,EAAAA,IAAQuB,EAAMlC,MAAOuL,EAAYE,EAAa,EAAGA,EAAcF,GAC/D,GACAvK,EAAS,IAAEwE,EAAAA,EAAAA,IAAMC,EAAAA,GAAOC,wBAAuBF,EAAAA,EAAAA,IAAMC,EAAAA,GAAOsF,6BAE3DhI,EAAYU,IAAUH,EAAAA,EAAAA,GAAU,CAAEqI,WAAY,uBAAwB,IACvE,gBAAEC,IAAoBC,EAAAA,EAAAA,GAAU,CAClCtE,OAAQxE,EACR+I,OAAQ,CAAC,YAAa,kBAEpBC,GAAkBC,EAAAA,EAAAA,GAAUJ,EAAiB,CAAEK,UAAW,GAAIC,QAAS,KACvEC,GAAwBC,EAAAA,EAAAA,GAAaL,EAAiB,CAAC,EAAG,GAAI,CAAC,EAAG,IAClEM,GAAkBD,EAAAA,EAAAA,GAAaL,EAAiB,CAAC,EAAG,GAAI,CAA0B,SAAzB7J,EAAMoK,gBAA6B,IAAM,IAAK,IAC7G,OAAQnK,EAAAA,cAAoB8F,EAAEN,UAAW,CAAEuC,QAAShI,EAAMgI,QAAS,kBAAmBzG,EAAQ,cAAevB,EAAMoK,eAAgB,kBAAmBpK,EAAMsJ,UAAWvB,MAAO,QAC1K9H,EAAAA,cAAoB8F,EAAEyC,eAAgB,KAClCvI,EAAAA,cAAoB8F,EAAE0C,QAAS,CAAE4B,wBAAyB,CAAEC,OAAQtK,EAAMuK,WAC1EvK,EAAMwK,KAAOxK,EAAMwK,IAAIC,MAASxK,EAAAA,cAAoBiF,EAAAA,GAAY,CAAExB,SAAU1D,EAAMwK,IAAIpG,KAAMgB,KAAMpF,EAAMwK,IAAIE,IAAKrF,OAAQrF,EAAMwK,IAAInF,OAAQnB,MAAOlE,EAAMwK,IAAIC,QAChKxK,EAAAA,cAAoB8F,EAAE4C,aAAc,KAChC1I,EAAAA,cAAoB8F,EAAE6C,aAAc,CAAE9C,IAAKjF,GACvCZ,EAAAA,cAAoB8F,EAAE+C,eAAgB,CAAE6B,MAAO,CACvCC,QAASX,EACTY,EAAGV,IAEPnK,EAAMlC,OAAUmC,EAAAA,cAAoB8F,EAAEmD,MAAO,CAAE1K,IAAKgL,EAAK,GAAGsB,MAAM,KAAK,GAAIC,OAAQvB,EAAKwB,KAAK,KAAMlM,MAAOA,EAAOmM,IAAwB,QAArB7B,EAAEpJ,EAAMlC,MAAMoN,eAAO,IAAA9B,EAAAA,EAAIpJ,EAAMsJ,UAAW6B,QAAS,SACvKnL,EAAMoL,OAAUnL,EAAAA,cAAoB8F,EAAEmD,MAAO,CAAEjE,GAAI,QAASoG,UAAU,EAAMC,MAAM,EAAMC,OAAO,EAAMC,aAAa,EAAMC,QAAQ5N,EAAAA,EAAAA,IAASmC,EAAMoL,MAAMM,aAAc,CAC3JxO,MAAOmM,EACPlM,OAAQoM,KAEZtJ,EAAAA,cAAoB,SAAU,CAAEzB,IAAKwB,EAAMoL,MAAM5M,IAAK4F,KAAM,kBAAoB,G","sources":["webpack://royal-college-radiologists/./src/helpers/aspectRatio.ts","webpack://royal-college-radiologists/./src/helpers/global.ts","webpack://royal-college-radiologists/./src/helpers/image.ts","webpack://royal-college-radiologists/./src/hoc/withMotion.tsx","webpack://royal-college-radiologists/./src/hooks/useIntersectionObserver.ts","webpack://royal-college-radiologists/./src/hooks/useInView.ts","webpack://royal-college-radiologists/./src/stories/Components/Buttons/GeneralButton/Button.styles.tsx","webpack://royal-college-radiologists/./src/stories/Components/Buttons/GeneralButton/Button.tsx","webpack://royal-college-radiologists/./src/stories/Components/General/SkipLink/SkipLink.styles.ts","webpack://royal-college-radiologists/./src/stories/Components/General/SkipLink/SkipLink.tsx","webpack://royal-college-radiologists/./src/stories/Components/Global/SectionWrapper/SectionWrapper.styles.ts","webpack://royal-college-radiologists/./src/hoc/withBaseProps.tsx","webpack://royal-college-radiologists/./src/stories/Components/Global/SectionWrapper/SectionWrapper.tsx","webpack://royal-college-radiologists/./src/stories/Widgets/Split5050Content/Split5050Content.styles.ts","webpack://royal-college-radiologists/./src/stories/Widgets/Split5050Content/Split5050Content.tsx"],"sourcesContent":["import { css } from 'styled-components';\r\nimport { fluidUnit } from './fluid';\r\n/**\r\n * Returns the aspect ratio of the given width and height as a percentage.\r\n */\r\nexport function aspectRatio(width, height) {\r\n return (height / width) * 100;\r\n}\r\n/**\r\n * Re-usable styles for image container where the\r\n * image needs to maintain it's aspect ratio\r\n *\r\n * @param width\r\n * @param height\r\n * @returns\r\n */\r\nexport function imageWrapperPreserveRatio(width, height, \r\n/**\r\n * Additonal values to use if the ratio increases over time\r\n */\r\nmaxWidth, maxHeight) {\r\n if (!width && !height) {\r\n return null;\r\n }\r\n let padding;\r\n if (maxWidth && maxHeight) {\r\n padding = `${fluidUnit(aspectRatio(width, height), aspectRatio(maxWidth, maxHeight), '%')}`;\r\n }\r\n else {\r\n padding = `${aspectRatio(width, height)}%`;\r\n }\r\n return css `\r\n position: relative;\r\n height: 0;\r\n width: 100%;\r\n overflow: hidden;\r\n overflow: clip;\r\n padding-bottom: ${padding};\r\n `;\r\n}\r\n/**\r\n * Re-usable styles for an image placed within\r\n * a container maintaining aspect ratio\r\n */\r\nexport const imageCoverContainer = (relative) => css `\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: center;\r\n ${!relative && 'position: absolute; top: 0;left: 0;'}\r\n`;\r\n","import { css } from 'styled-components';\r\nexport default {\r\n navHeight: 107,\r\n navHeightTablet: 80,\r\n navHeightMobile: 59,\r\n};\r\nexport const ButtonReset = css `\r\n border: none;\r\n outline: none;\r\n padding: 0px;\r\n background: none;\r\n border-radius: 0px;\r\n`;\r\n","import queryString from 'query-string';\r\n/**\r\n * Create an image URL for ImageProcessor\r\n * @param image The image model\r\n * @param imageParams The image parameters\r\n * @returns The image URL\r\n */\r\nexport function imageUrl(image, imageParams) {\r\n if (!image) {\r\n return '';\r\n }\r\n const params = {\r\n center: image.focalPoint ? `${image.focalPoint.top},${image.focalPoint.left}` : undefined,\r\n ...imageParams,\r\n };\r\n const paramsString = queryString.stringify(params);\r\n return `${image.src}${paramsString ? `?${queryString.stringify(params)}` : ''}`;\r\n}\r\nexport function getSrcs(image, upper, lower, steps, ratio, params) {\r\n const sizes = getRange(upper, lower, steps);\r\n return sizes.map((size) => `${imageUrl(image, {\r\n width: size,\r\n height: ratio ? size * ratio : undefined,\r\n ...params,\r\n })} ${size}w`);\r\n}\r\nfunction getRange(upper, lower, steps) {\r\n const difference = upper - lower;\r\n const increment = difference / (steps - 1);\r\n return [\r\n lower,\r\n ...Array(steps - 2)\r\n .fill('')\r\n .map((_, index) => Math.ceil(lower + increment * (index + 1))),\r\n upper,\r\n ];\r\n}\r\nexport function getRetinaSrcs(image, width, height) {\r\n const dprs = [1, 1.5, 2, 2.5, 3];\r\n return dprs.map((dpr) => `${imageUrl(image, {\r\n width: width * dpr,\r\n height: height ? height * dpr : undefined,\r\n })} ${dpr}x`);\r\n}\r\n","import { domAnimation, LazyMotion } from 'framer-motion';\r\nimport React from 'react';\r\nexport function withMotion(WrappedComponent) {\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n const ComponentWithMotion = (props) => {\r\n return (React.createElement(LazyMotion, { features: domAnimation, strict: true },\r\n React.createElement(WrappedComponent, { ...props })));\r\n };\r\n ComponentWithMotion.displayName = `withMotion(${displayName})`;\r\n return ComponentWithMotion;\r\n}\r\n","import { useEffect, useRef } from 'react';\r\n/**\r\n * Use the IntersectionObserver to track visibility of an element in the viewport.\r\n * @param {IntersectionObserverCallback} callback\r\n * @param {IntersectionObserverInit} options\r\n * @returns {UseIntersectionObserverReturn}\r\n */\r\nfunction useIntersectionObserver(callback, options = {}) {\r\n const observerRef = useRef(null);\r\n const rootRef = useRef(null);\r\n const elementRef = useRef(null);\r\n useEffect(() => {\r\n if (!elementRef.current) {\r\n return undefined;\r\n }\r\n observerRef.current = new IntersectionObserver(callback, {\r\n root: rootRef.current,\r\n ...options,\r\n });\r\n observerRef.current.observe(elementRef.current);\r\n return () => {\r\n if (observerRef.current === null) {\r\n return;\r\n }\r\n observerRef.current.disconnect();\r\n };\r\n }, [callback, options]);\r\n return { elementRef, observerRef, rootRef };\r\n}\r\nexport default useIntersectionObserver;\r\n","import { useState } from 'react';\r\nimport useIntersectionObserver from './useIntersectionObserver';\r\nexport function useInView(options, reverse = false, isEditMode = false) {\r\n const [inView, setInView] = useState(false);\r\n const { elementRef } = useIntersectionObserver((entries) => {\r\n if (entries[0].isIntersecting) {\r\n setInView(true);\r\n }\r\n else if (reverse === true) {\r\n setInView(false);\r\n }\r\n }, options);\r\n return [elementRef, isEditMode ? true : inView];\r\n}\r\n","import { transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, until } from '@helpers/media';\r\nimport styled, { css } from 'styled-components';\r\nconst Text = styled.div ``;\r\nconst PrimaryStyles = css `\r\n border: 0;\r\n background-color: ${brand.secondary.red};\r\n color: ${brand.primary.purple};\r\n border-radius: 1000000px;\r\n overflow: hidden;\r\n\r\n &:before {\r\n ${transition('transform')};\r\n\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${brand.primary.offWhite};\r\n border-radius: 1000000px;\r\n transform: translateX(calc(-100% - 2px));\r\n }\r\n\r\n [data-variant='light'] & {\r\n span& {\r\n button.focus-ring &,\r\n button:hover &,\r\n a.focus-ring & {\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n a:hover & { \r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:hover,\r\n &:active {\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.purple};\r\n }\r\n\r\n &:before {\r\n background-color: ${brand.primary.purple};\r\n }\r\n }\r\n\r\n [data-variant='dark'] & {\r\n span& {\r\n button.focus-ring &,\r\n button:hover &,\r\n a.focus-ring & {\r\n background-color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n a:hover & { \r\n background-color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:active {\r\n background-color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n background-color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.offWhite};\r\n }\r\n\r\n &:before {\r\n background-color: ${brand.primary.offWhite};\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n background-color: ${brand.primary.offWhite};\r\n\r\n &:before {\r\n transform: translateX(0);\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n background-color: ${brand.primary.offWhite};\r\n\r\n &:before {\r\n transform: translateX(0);\r\n }\r\n }\r\n`;\r\nconst OutlineStyles = css `\r\n background-color: transparent;\r\n border-radius: 1000000px;\r\n overflow: hidden;\r\n\r\n &:before {\r\n ${transition('transform')};\r\n\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${brand.primary.offWhite};\r\n border-radius: 1000000px;\r\n transform: translateX(calc(-100% - 2px));\r\n }\r\n\r\n [data-variant='light'] & {\r\n color: ${brand.primary.purple};\r\n border: 1px solid ${brand.primary.purple};\r\n\r\n span& {\r\n button.focus-ring &,\r\n button:hover &,\r\n a.focus-ring &,\r\n a[data-toggle-on='true'] & {\r\n border-color: ${brand.primary.purple};\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n a:hover & { \r\n border-color: ${brand.primary.purple};\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n border-color: ${brand.primary.purple};\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n border-color: ${brand.primary.purple};\r\n background-color: ${brand.primary.purple};\r\n color: ${brand.primary.offWhite};\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.purple};\r\n }\r\n\r\n &:before {\r\n background-color: ${brand.primary.purple};\r\n }\r\n }\r\n\r\n [data-variant='dark'] & {\r\n color: ${brand.primary.offWhite};\r\n border: 1px solid ${brand.primary.offWhite};\r\n\r\n span& {\r\n button.focus-ring &,\r\n \r\n a.focus-ring &,\r\n a[data-toggle-on='true'] & {\r\n background-color: ${brand.primary.offWhite};\r\n color: ${brand.primary.purple};\r\n }\r\n\r\n @media (hover: hover) {\r\n button:hover &,\r\n a:hover & { \r\n background-color: ${brand.primary.offWhite};\r\n color: ${brand.primary.purple};\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:hover,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n background-color: ${brand.primary.offWhite};\r\n color: ${brand.primary.purple};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n background-color: ${brand.primary.offWhite};\r\n color: ${brand.primary.purple};\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.offWhite};\r\n }\r\n\r\n &:before {\r\n background-color: ${brand.primary.offWhite};\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n }\r\n\r\n span& {\r\n button.focus-ring &, \r\n a.focus-ring &,\r\n a[data-toggle-on='true'] & {\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n button:hover &,\r\n a:hover & { \r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nconst OutlineAltStyles = css `\r\n background-color: transparent;\r\n border-radius: 1000000px;\r\n overflow: hidden;\r\n\r\n &:before {\r\n ${transition('transform')};\r\n\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: ${brand.secondary.red};\r\n border-radius: 1000000px;\r\n transform: translateX(calc(-100% - 2px));\r\n }\r\n\r\n [data-variant='light'] & {\r\n color: ${brand.primary.purple};\r\n border: 1px solid ${brand.primary.purple};\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.purple};\r\n }\r\n }\r\n\r\n [data-variant='dark'] & {\r\n color: ${brand.primary.offWhite};\r\n border: 1px solid ${brand.primary.offWhite};\r\n\r\n span& {\r\n button.focus-ring &, \r\n a.focus-ring &,\r\n a[data-toggle-on='true'] & {\r\n color: ${brand.primary.purple};\r\n }\r\n\r\n @media (hover: hover) {\r\n button:hover &,\r\n a:hover & { \r\n color: ${brand.primary.purple};\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n color: ${brand.primary.purple};\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n color: ${brand.primary.purple};\r\n }\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline-color: ${brand.primary.offWhite};\r\n }\r\n\r\n &:before {\r\n background-color: ${brand.secondary.red};\r\n }\r\n }\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n }\r\n\r\n span& {\r\n button.focus-ring &, \r\n a.focus-ring &,\r\n a[data-toggle-on='true'] & {\r\n background-color: ${brand.secondary.red};\r\n border-color: ${brand.secondary.red};\r\n\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n button:hover &,\r\n a:hover & { \r\n background-color: ${brand.secondary.red};\r\n border-color: ${brand.secondary.red};\r\n\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &.focus-ring,\r\n &:active,\r\n &[data-toggle-on='true'] {\r\n background-color: ${brand.secondary.red};\r\n border-color: ${brand.secondary.red};\r\n\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n background-color: ${brand.secondary.red};\r\n border-color: ${brand.secondary.red};\r\n\r\n &::before {\r\n transform: translateX(0);\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nconst Wave = styled.div `\r\n ${transition('max-width')};\r\n\r\n overflow: hidden;\r\n max-width: 0;\r\n color: ${brand.secondary.red};\r\n\r\n svg {\r\n display: block;\r\n margin-right: 5px;\r\n height: 30px;\r\n }\r\n`;\r\nconst Arrow = styled.div `\r\n ${transition('transform')};\r\n\r\n margin: 0 0 0 5px;\r\n\r\n svg {\r\n display: block;\r\n height: 12px;\r\n }\r\n`;\r\nconst TextOnlyStyles = css `\r\n display: inline-flex;\r\n align-items: center;\r\n border: 1px solid transparent;\r\n background: none;\r\n color: ${brand.primary.purple};\r\n padding: 0;\r\n\r\n [data-variant='dark'] & {\r\n color: ${brand.primary.offWhite};\r\n }\r\n\r\n ${Text} {\r\n margin-bottom: 2px;\r\n }\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n }\r\n\r\n span& {\r\n button.focus-ring &,\r\n a.focus-ring & {\r\n ${Wave} {\r\n max-width: 50px;\r\n }\r\n\r\n ${Arrow} {\r\n transform: translateX(15%);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n button:hover &,\r\n a:hover & { \r\n ${Wave} {\r\n max-width: 50px;\r\n }\r\n\r\n ${Arrow} {\r\n transform: translateX(15%);\r\n }\r\n }\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &:hover,\r\n &:active,\r\n &.focus-ring {\r\n ${Wave} {\r\n max-width: 50px;\r\n }\r\n\r\n ${Arrow} {\r\n transform: translateX(15%);\r\n }\r\n }\r\n\r\n @media (hover: hover) {\r\n &:hover { \r\n ${Wave} {\r\n max-width: 50px;\r\n }\r\n\r\n ${Arrow} {\r\n transform: translateX(15%);\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nconst Icon = styled.div `\r\n display: inline-flex;\r\n align-items: center;\r\n margin: 0 0 0 8px;\r\n\r\n svg {\r\n max-height: 24px;\r\n width: 20px;\r\n }\r\n\r\n &[data-position='left'] {\r\n order: -1;\r\n margin: 0 8px 0 0;\r\n }\r\n`;\r\nconst Button = styled.button `\r\n ${transition('color, background-color, border-color')};\r\n\r\n display: inline-flex;\r\n padding: 10px ${fluid(20, 25)} 12px;\r\n height: ${fluid(46, 48)};\r\n user-select: none;\r\n text-decoration: none;\r\n position: relative;\r\n align-items: center;\r\n\r\n ${Text} {\r\n ${fonts.graphikCompact.medium};\r\n\r\n font-size: ${fluid(18, 20)};\r\n line-height: ${fluid(24, 26)};\r\n display: inline-block;\r\n vertical-align: middle;\r\n position: relative;\r\n z-index: 2;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.66;\r\n pointer-events: none;\r\n\r\n &:hover {\r\n opacity: 0.66;\r\n }\r\n }\r\n\r\n /* Mobile click styles - button should mimic press */\r\n @media ${until(Device.TabletLarge)} {\r\n ${transition('color, background-color, border-color, transform')};\r\n\r\n span& {\r\n button:active &,\r\n a:active & {\r\n transform: translateY(1.5px);\r\n }\r\n }\r\n\r\n &:not(span) {\r\n &:active {\r\n transform: translateY(1.5px);\r\n }\r\n }\r\n }\r\n\r\n ${({ branding }) => {\r\n switch (branding) {\r\n case 'textOnly':\r\n return TextOnlyStyles;\r\n case 'solid':\r\n return PrimaryStyles;\r\n case 'outline':\r\n return OutlineStyles;\r\n case 'outline-alt':\r\n return OutlineAltStyles;\r\n default:\r\n break;\r\n }\r\n}}\r\n`;\r\nconst ArrowButton = styled.button `\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n background: transparent;\r\n border: none;\r\n width: ${fluid(58, 60)};\r\n height: ${fluid(48, 50)};\r\n padding: 0;\r\n color: var(--fgColour, ${brand.primary.purple});\r\n\r\n &:first-child {\r\n justify-content: flex-end;\r\n\r\n svg {\r\n transform: scaleX(-1);\r\n }\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.66;\r\n pointer-events: none;\r\n\r\n &:hover {\r\n opacity: 0.66;\r\n }\r\n }\r\n\r\n svg {\r\n display: block;\r\n height: ${fluid(12, 15)};\r\n }\r\n\r\n /* Mobile click styles - button should mimic press */\r\n @media ${until(Device.TabletLarge)} {\r\n ${transition('transform', 0.15)};\r\n\r\n &:active {\r\n transform: translateY(1.5px);\r\n }\r\n }\r\n`;\r\nconst ButtonInner = styled.div `\r\n ${transition('max-width')};\r\n\r\n border: 2px solid var(--fgColour, ${brand.primary.purple});\r\n border-radius: 5000000px;\r\n max-width: ${fluid(46, 48)};\r\n width: ${fluid(56, 58)};\r\n height: ${fluid(46, 48)};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n ${ArrowButton}.focus-ring & {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n }\r\n\r\n ${ArrowButton}.focus-ring & {\r\n max-width: ${fluid(56, 58)};\r\n }\r\n\r\n @media (hover: hover) {\r\n ${ArrowButton}:hover & {\r\n max-width: ${fluid(56, 58)};\r\n }\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n max-width: ${fluid(56, 58)};\r\n }\r\n`;\r\nconst ButtonIcon = styled.div `\r\n ${transition('transform')};\r\n position: relative;\r\n line-height: 0;\r\n transform: translateX(0);\r\n\r\n ${ArrowButton}:last-child.focus-ring &{\r\n transform: translateX(7px);\r\n }\r\n\r\n @media (hover: hover) {\r\n ${ArrowButton}:last-child:hover & {\r\n transform: translateX(7px);\r\n }\r\n }\r\n\r\n ${ArrowButton}.focus-ring & {\r\n transform: translateX(-7px);\r\n }\r\n\r\n @media (hover: hover) {\r\n ${ArrowButton}:hover & {\r\n transform: translateX(-7px);\r\n }\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n transform: translateX(-7px);\r\n\r\n ${ArrowButton}:last-child & {\r\n transform: translateX(7px);\r\n }\r\n }\r\n`;\r\nconst HoverLine = styled.div `\r\n ${transition('transform')};\r\n\r\n position: absolute;\r\n left: 0;\r\n top: 50%;\r\n width: 22px;\r\n height: 3px;\r\n transform-origin: 0;\r\n transform: translate(2px, -50%) scaleX(0);\r\n background-color: var(--fgColour, ${brand.primary.purple});\r\n\r\n ${ArrowButton}:last-child & {\r\n transform-origin: 100%;\r\n left: auto;\r\n right: 0;\r\n transform: translate(-2px, -50%) scaleX(0);\r\n }\r\n\r\n ${ArrowButton}.focus-ring & {\r\n transform: translate(2px, -50%) scaleX(1);\r\n }\r\n\r\n @media (hover: hover) {\r\n ${ArrowButton}:hover & {\r\n transform: translate(2px, -50%) scaleX(1);\r\n }\r\n }\r\n\r\n ${ArrowButton}:last-child.focus-ring & {\r\n transform: translate(-2px, -50%) scaleX(1);\r\n }\r\n\r\n @media (hover: hover) {\r\n ${ArrowButton}:last-child:hover & {\r\n transform: translate(-2px, -50%) scaleX(1);\r\n }\r\n }\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n transform: translate(2px, -50%) scaleX(1);\r\n\r\n ${ArrowButton}:last-child & {\r\n transform: translate(-2px, -50%) scaleX(1);\r\n }\r\n }\r\n`;\r\nexport const ButtonStyles = {\r\n Arrow,\r\n ArrowButton,\r\n Button,\r\n ButtonIcon,\r\n ButtonInner,\r\n HoverLine,\r\n Icon,\r\n Text,\r\n Wave,\r\n};\r\n","import { getSvgFromSystem, SystemIcon } from '@helpers/systemIcons';\r\nimport React from 'react';\r\nimport { FocusRing } from 'react-aria';\r\nimport { ButtonStyles } from './Button.styles';\r\nconst Button = ({ branding, className, disabled, title, toggleOn = false, type = 'button', onClick, icon, iconPosition = 'right', ...otherProps }) => {\r\n return (React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(ButtonStyles.Button, { className: className, branding: branding, disabled: disabled, type: type, onClick: onClick, \"data-toggle-on\": toggleOn, \"data-branding\": branding, ...otherProps },\r\n branding === 'textOnly' && (React.createElement(ButtonStyles.Wave, null, getSvgFromSystem(SystemIcon.Wave1))),\r\n React.createElement(ButtonStyles.Text, null, title),\r\n icon ? (React.createElement(ButtonStyles.Icon, { \"data-position\": iconPosition }, icon)) : branding === 'textOnly' ? (React.createElement(ButtonStyles.Arrow, null, getSvgFromSystem(SystemIcon.ArrowRight))) : null)));\r\n};\r\nconst FakeButton = ({ branding, className, title, icon, iconPosition = 'right', ...otherProps }) => {\r\n return (React.createElement(ButtonStyles.Button, { className: className, branding: branding, as: \"span\", ...otherProps },\r\n branding === 'textOnly' && (React.createElement(ButtonStyles.Wave, null, getSvgFromSystem(SystemIcon.Wave1))),\r\n React.createElement(ButtonStyles.Text, null, title),\r\n icon ? (React.createElement(ButtonStyles.Icon, { \"data-position\": iconPosition }, icon)) : branding === 'textOnly' ? (React.createElement(ButtonStyles.Arrow, null, getSvgFromSystem(SystemIcon.ArrowRight))) : null));\r\n};\r\nconst LinkButton = ({ branding, className, href, target = '_self', title, icon, iconPosition = 'right', ...otherProps }) => {\r\n return (React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(ButtonStyles.Button, { className: className, as: \"a\", branding: branding, href: href, target: target, ...otherProps },\r\n branding === 'textOnly' && (React.createElement(ButtonStyles.Wave, null, getSvgFromSystem(SystemIcon.Wave1))),\r\n React.createElement(ButtonStyles.Text, null, title),\r\n icon ? (React.createElement(ButtonStyles.Icon, { \"data-position\": iconPosition }, icon)) : branding === 'textOnly' ? (React.createElement(ButtonStyles.Arrow, null, getSvgFromSystem(SystemIcon.ArrowRight))) : null)));\r\n};\r\nconst ArrowButton = ({ labelText, disabled, onClick, ...otherProps }) => {\r\n return (React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(ButtonStyles.ArrowButton, { \"aria-label\": labelText, disabled: disabled, onClick: onClick, ...otherProps },\r\n React.createElement(ButtonStyles.ButtonInner, null,\r\n React.createElement(ButtonStyles.ButtonIcon, null,\r\n getSvgFromSystem(SystemIcon.Chevron),\r\n React.createElement(ButtonStyles.HoverLine, null))))));\r\n};\r\nexport { Button as default, LinkButton, ArrowButton, FakeButton };\r\n","import { transition } from '@helpers/animate';\r\nimport brand from '@helpers/brand';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { siteWide } from '@helpers/grid';\r\nimport { Layers } from '@helpers/layers';\r\nimport { paragraphRegular } from '@helpers/typography';\r\nimport styled from 'styled-components';\r\nconst Container = styled.div `\r\n ${siteWide};\r\n\r\n position: relative;\r\n z-index: ${Layers.NavigationTray + 1};\r\n height: 0;\r\n`;\r\nconst Button = styled.button `\r\n ${ButtonReset};\r\n ${transition('opacity, transform')};\r\n ${paragraphRegular};\r\n\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n margin: 0;\r\n opacity: 0;\r\n transform: translate(3px, -100%);\r\n background-color: var(--fgColour, ${brand.primary.offWhite});\r\n color: var(--bgColour, ${brand.primary.purple});\r\n padding: 8px 12px;\r\n\r\n &.focus-ring {\r\n outline: auto;\r\n outline-offset: 3px;\r\n outline-style: solid;\r\n outline-width: 2px;\r\n outline-color: var(--fgColour, ${brand.primary.offWhite});\r\n opacity: 1;\r\n transform: translate(3px, 3px);\r\n }\r\n`;\r\nconst SkipLinkStyles = {\r\n Container,\r\n Button,\r\n};\r\nexport default SkipLinkStyles;\r\n","import { scrollIntoView } from '@helpers/animate';\r\nimport * as React from 'react';\r\nimport { FocusRing } from 'react-aria';\r\nimport S from './SkipLink.styles';\r\nconst SkipLink = ({ type = 'inline' }) => {\r\n const ref = React.useRef(null);\r\n return (React.createElement(S.Container, null,\r\n React.createElement(FocusRing, { focusRingClass: \"focus-ring\" },\r\n React.createElement(S.Button, { ref: ref, onClick: () => {\r\n if (type === 'header') {\r\n skipToMain();\r\n }\r\n else {\r\n skipSection();\r\n }\r\n } }, type === 'header' ? React.createElement(React.Fragment, null, \"Skip to Main Content\") : React.createElement(React.Fragment, null, \"Skip to Next Section\")))));\r\n function skipToMain() {\r\n const targetEl = document.getElementById('main');\r\n if (!targetEl) {\r\n return;\r\n }\r\n scrollIntoView(targetEl);\r\n focusNext(targetEl);\r\n }\r\n function skipSection() {\r\n let wrapperEl = ref.current?.closest('div[class^=react_Components_]');\r\n // Should only ever occur in storybook\r\n if (!wrapperEl) {\r\n wrapperEl = ref.current?.closest('section');\r\n }\r\n let targetEl = wrapperEl?.nextElementSibling;\r\n // Last element in main wrapper, next element is footer\r\n if (!targetEl) {\r\n targetEl = wrapperEl?.parentElement?.nextElementSibling;\r\n }\r\n if (!targetEl) {\r\n return;\r\n }\r\n scrollIntoView(targetEl);\r\n focusNext(targetEl);\r\n }\r\n function focusNext(el) {\r\n const focusable = el.querySelectorAll('button');\r\n focusable[0]?.focus();\r\n }\r\n};\r\nexport default SkipLink;\r\n","import brand from '@helpers/brand';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { siteWide } from '@helpers/grid';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Container = styled.section `\r\n --sectionSpacingTop: ${fluid(32, 80)};\r\n --sectionSpacingBottom: ${fluid(32, 80)};\r\n --bgColour: transparent;\r\n --bgColourTint: ${brand.tint.offWhite};\r\n --fgColour: ${brand.primary.purple};\r\n --fgColourTint: ${brand.tint.purple};\r\n\r\n position: relative;\r\n scroll-margin: var(--stickyHeaderHeight) 0 0;\r\n background-color: var(--bgColour);\r\n color: var(--fgColour);\r\n\r\n &[data-variant='light'] {\r\n --bgColour: ${brand.primary.offWhite};\r\n --bgColourTint: ${brand.tint.offWhite};\r\n --fgColour: ${brand.primary.purple};\r\n --fgColourTint: ${brand.tint.purple};\r\n }\r\n\r\n &[data-variant='dark'] {\r\n --bgColour: ${brand.primary.purple};\r\n --bgColourTint: ${brand.tint.purple};\r\n --fgColour: ${brand.primary.offWhite};\r\n --fgColourTint: ${brand.tint.offWhite};\r\n }\r\n\r\n &[data-allow-scroll-margin='true'],\r\n &[data-has-skip='true'] {\r\n overflow: clip;\r\n overflow: hidden;\r\n }\r\n\r\n &[data-flush='top'] {\r\n --sectionSpacingTop: 0;\r\n\r\n @media ${from(Device.Tablet)} {\r\n --sectionSpacingTop: 0;\r\n }\r\n }\r\n\r\n &[data-flush='bottom'] {\r\n --sectionSpacingBottom: 0;\r\n\r\n @media ${from(Device.Tablet)} {\r\n --sectionSpacingBottom: 0;\r\n }\r\n }\r\n\r\n &[data-flush='both'] {\r\n --sectionSpacingTop: 0;\r\n --sectionSpacingBottom: 0;\r\n\r\n @media ${from(Device.Tablet)} {\r\n --sectionSpacingTop: 0;\r\n --sectionSpacingBottom: 0;\r\n }\r\n }\r\n\r\n /* Negative margin bottom to force overlap */\r\n &[data-overlap-bottom='true'] {\r\n margin-bottom: calc(var(--sectionSpacingBottom) * -1);\r\n }\r\n\r\n .equally-ai___high-saturation & {\r\n filter: saturate(200%);\r\n }\r\n\r\n .equally-ai___reverse-contrast & {\r\n filter: invert(100%);\r\n }\r\n\r\n .equally-ai___monochrome-contrast & {\r\n filter: grayscale(100%);\r\n }\r\n\r\n .equally-ai___reverse-contrast.equally-ai___monochrome-contrast & {\r\n filter: grayscale(100%) invert(100%);\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n color: var(--fgColor);\r\n padding-top: var(--sectionSpacingTop);\r\n padding-bottom: var(--sectionSpacingBottom);\r\n\r\n /* Don't apply background color for white backgrounds */\r\n ${Container} & {\r\n background: var(--bgColor);\r\n }\r\n`;\r\nconst SiteWide = styled.div `\r\n ${siteWide}\r\n`;\r\nconst FocusAnchor = styled.button `\r\n ${ButtonReset};\r\n\r\n height: 0;\r\n width: 0;\r\n`;\r\nconst SectionWrapperStyles = {\r\n Container,\r\n Inner,\r\n SiteWide,\r\n FocusAnchor,\r\n};\r\nexport default SectionWrapperStyles;\r\n","import * as React from 'react';\r\nconst BasePropsContext = React.createContext({});\r\nexport function withBaseProps(WrappedComponent) {\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n const ComponentWithBaseProps = (props) => {\r\n return (React.createElement(BasePropsContext.Provider, { value: props },\r\n React.createElement(WrappedComponent, { ...props })));\r\n };\r\n ComponentWithBaseProps.displayName = `withBaseProps(${displayName})`;\r\n return ComponentWithBaseProps;\r\n}\r\nexport const useBaseProps = () => React.useContext(BasePropsContext);\r\n","import { useBaseProps } from '@hoc/withBaseProps';\r\nimport SkipLink from '@stories/Components/General/SkipLink/SkipLink';\r\nimport * as React from 'react';\r\nimport S from './SectionWrapper.styles';\r\nconst SectionWrapper = React.forwardRef((props, ref) => {\r\n const { children, layout = 'default', flush = 'none', variant = 'none', removeSkipLink, ...otherProps } = props;\r\n const baseProps = useBaseProps();\r\n return (React.createElement(S.Container, { ref: ref, id: baseProps.id, \"data-allow-scroll-margin\": !!baseProps.id, \"data-flush\": flush, \"data-variant\": variant, \"data-has-skip\": !removeSkipLink, ...otherProps },\r\n React.createElement(S.Inner, null,\r\n !removeSkipLink ? React.createElement(SkipLink, null) : React.createElement(S.FocusAnchor, { \"aria-label\": \"Skip to content anchor\" }),\r\n renderLayout())));\r\n function renderLayout() {\r\n if (layout === 'fullWidth') {\r\n return children;\r\n }\r\n return React.createElement(S.SiteWide, null, children);\r\n }\r\n});\r\nSectionWrapper.displayName = 'SectionWrapper';\r\nexport default SectionWrapper;\r\n","import { disableAnimationClass } from '@helpers/animate';\r\nimport { imageCoverContainer, imageWrapperPreserveRatio } from '@helpers/aspectRatio';\r\nimport { fluid } from '@helpers/fluid';\r\nimport { baseGrid } from '@helpers/grid';\r\nimport { Device, from } from '@helpers/media';\r\nimport { contentStyles } from '@helpers/typography';\r\nimport { ButtonStyles } from '@stories/Components/Buttons/GeneralButton/Button.styles';\r\nimport SectionWrapper from '@stories/Components/Global/SectionWrapper/SectionWrapper';\r\nimport SectionWrapperStyles from '@stories/Components/Global/SectionWrapper/SectionWrapper.styles';\r\nimport { m } from 'framer-motion';\r\nimport styled, { css } from 'styled-components';\r\nconst Container = styled(SectionWrapper) `\r\n ${SectionWrapperStyles.SiteWide} {\r\n ${baseGrid};\r\n }\r\n\r\n overflow: hidden;\r\n\r\n @media ${from(Device.Tablet)} {\r\n &[data-is-in-view='true'] {\r\n overflow: unset;\r\n }\r\n }\r\n`;\r\nconst defaultSpans = css `\r\n grid-column: 1 / span 12;\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-column: 2 / span 4;\r\n }\r\n`;\r\nconst ContentWrapper = styled.div `\r\n ${defaultSpans};\r\n\r\n ${ButtonStyles.Button} {\r\n margin: ${fluid(24, 32)} 0 0;\r\n }\r\n\r\n ${Container}[data-layout='left'] & {\r\n order: 2;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n ${Container}[data-layout='left'] & {\r\n grid-column: 8 / span 4;\r\n }\r\n }\r\n\r\n [data-image-type='landscape'] & {\r\n padding: ${fluid(20, 85)} 0;\r\n }\r\n\r\n [data-image-type='portrait'] & {\r\n padding: ${fluid(20, 175)} 0;\r\n }\r\n`;\r\nconst Content = styled.div `\r\n ${contentStyles};\r\n`;\r\nconst MediaWrapper = styled.div `\r\n ${defaultSpans};\r\n margin: 20px 20px;\r\n display: grid;\r\n\r\n [data-is-in-view='true'] & {\r\n display: block;\r\n }\r\n\r\n ${Container}[data-layout='left'] & {\r\n order: 1;\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n ${Container}[data-layout='left'] & {\r\n grid-column: 2 / span 5;\r\n margin: 0;\r\n }\r\n\r\n ${Container}[data-layout='left'][data-image-type='portrait'] & {\r\n grid-column: 2 / span 4;\r\n }\r\n\r\n ${Container}[data-layout='right'] & {\r\n grid-column: 7 / span 5;\r\n margin: 0;\r\n }\r\n\r\n ${Container}[data-layout='right'][data-image-type='portrait'] & {\r\n grid-column: 8 / span 4;\r\n }\r\n }\r\n`;\r\nconst ImageWrapper = styled.div `\r\n @media ${from(Device.DesktopSmall)} {\r\n position: sticky;\r\n top: 200px;\r\n }\r\n`;\r\nconst ImageAnimation = styled(m.div) `\r\n [data-image-type='landscape'] & {\r\n ${imageWrapperPreserveRatio(717, 500)};\r\n }\r\n\r\n [data-image-type='portrait'] & {\r\n ${imageWrapperPreserveRatio(568, 717)};\r\n }\r\n\r\n ${disableAnimationClass} & {\r\n opacity: 1 !important;\r\n transform: none !important;\r\n }\r\n`;\r\nconst Test = styled.div `\r\n position: fixed;\r\n top: 0;\r\n width: 100%;\r\n left: 0;\r\n height: 200px;\r\n background-color: rgba(128, 255, 128, 0.6);\r\n z-index: 100;\r\n`;\r\nconst Image = styled.img `\r\n ${imageCoverContainer()};\r\n`;\r\nconst Split5050ContentStyles = {\r\n Container,\r\n Content,\r\n ContentWrapper,\r\n Image,\r\n ImageAnimation,\r\n ImageWrapper,\r\n MediaWrapper,\r\n Test,\r\n};\r\nexport default Split5050ContentStyles;\r\n","import { Device, until } from '@helpers/media';\r\nimport { getSrcs, imageUrl } from '@helpers/image';\r\nimport { LinkButton } from '@stories/Components/Buttons/GeneralButton/Button';\r\nimport { useInView } from '@hooks/useInView';\r\nimport { useSpring, useTransform, useScroll } from 'framer-motion';\r\nimport { withMotion } from '@hoc/withMotion';\r\nimport * as React from 'react';\r\nimport S from './Split5050Content.styles';\r\nconst Split5050Content = (props) => {\r\n const imageWidth = props.imageType === 'landscape' ? 717 : 568;\r\n const imageHeight = props.imageType === 'landscape' ? 500 : 717;\r\n const srcs = props.image\r\n ? getSrcs(props.image, imageWidth, imageHeight, 3, imageHeight / imageWidth)\r\n : [];\r\n const sizes = `${until(Device.TabletLarge)} 100vw, ${until(Device.DesktopSmall)} 50vw, 405px`;\r\n // Rootmargin value is slightly more than the position: sticky top value for ImageWrapper\r\n const [elementRef, inView] = useInView({ rootMargin: '0px 0px -201px 0px' }, true);\r\n const { scrollYProgress } = useScroll({\r\n target: elementRef,\r\n offset: ['start end', 'start center'],\r\n });\r\n const springYProgress = useSpring(scrollYProgress, { stiffness: 60, damping: 20 });\r\n const imageAnimationOpacity = useTransform(springYProgress, [0, 1], [0, 1]);\r\n const imageAnimationX = useTransform(springYProgress, [0, 1], [props.imageAlignment === 'left' ? -150 : 150, 0]);\r\n return (React.createElement(S.Container, { variant: props.variant, \"data-is-in-view\": inView, \"data-layout\": props.imageAlignment, \"data-image-type\": props.imageType, flush: \"both\" },\r\n React.createElement(S.ContentWrapper, null,\r\n React.createElement(S.Content, { dangerouslySetInnerHTML: { __html: props.content } }),\r\n props.cta && props.cta.text && (React.createElement(LinkButton, { branding: props.cta.type, href: props.cta.url, target: props.cta.target, title: props.cta.text }))),\r\n React.createElement(S.MediaWrapper, null,\r\n React.createElement(S.ImageWrapper, { ref: elementRef },\r\n React.createElement(S.ImageAnimation, { style: {\r\n opacity: imageAnimationOpacity,\r\n x: imageAnimationX,\r\n } },\r\n props.image && (React.createElement(S.Image, { src: srcs[0].split(' ')[0], srcSet: srcs.join(','), sizes: sizes, alt: props.image.altText ?? props.imageType, loading: 'lazy' })),\r\n props.video && (React.createElement(S.Image, { as: \"video\", autoPlay: true, loop: true, muted: true, playsInline: true, poster: imageUrl(props.video.previewImage, {\r\n width: imageWidth,\r\n height: imageHeight,\r\n }) },\r\n React.createElement(\"source\", { src: props.video.src, type: \"video/mp4\" }))))))));\r\n};\r\nexport default withMotion(Split5050Content);\r\n"],"names":["aspectRatio","width","height","imageWrapperPreserveRatio","maxWidth","maxHeight","padding","fluidUnit","css","imageCoverContainer","relative","ButtonReset","imageUrl","image","imageParams","params","center","focalPoint","top","left","undefined","paramsString","queryString","src","getSrcs","upper","lower","steps","ratio","sizes","increment","Array","fill","map","_","index","Math","ceil","getRange","size","getRetinaSrcs","dpr","withMotion","WrappedComponent","displayName","name","ComponentWithMotion","props","React","LazyMotion","features","domAnimation","strict","callback","options","arguments","length","observerRef","useRef","rootRef","elementRef","useEffect","current","IntersectionObserver","root","observe","disconnect","useInView","reverse","isEditMode","inView","setInView","useState","useIntersectionObserver","entries","isIntersecting","Text","styled","div","withConfig","componentId","PrimaryStyles","brand","secondary","red","primary","purple","transition","offWhite","OutlineStyles","OutlineAltStyles","Wave","Arrow","TextOnlyStyles","Icon","Button","button","fluid","fonts","graphikCompact","medium","until","Device","TabletLarge","_ref","branding","ArrowButton","ButtonInner","ButtonStyles","ButtonIcon","HoverLine","className","disabled","title","toggleOn","type","onClick","icon","iconPosition","otherProps","FocusRing","focusRingClass","getSvgFromSystem","SystemIcon","Wave1","ArrowRight","FakeButton","_ref2","as","LinkButton","_ref3","href","target","_ref4","labelText","Chevron","Container","siteWide","Layers","NavigationTray","paragraphRegular","ref","S","targetEl","document","getElementById","scrollIntoView","focusNext","skipToMain","_ref$current","_wrapperEl","wrapperEl","closest","_ref$current2","nextElementSibling","_wrapperEl2","_wrapperEl2$parentEle","parentElement","skipSection","el","_focusable$","querySelectorAll","focus","section","tint","from","Tablet","Inner","SiteWide","FocusAnchor","BasePropsContext","SectionWrapper","children","layout","flush","variant","removeSkipLink","baseProps","id","SkipLink","SectionWrapperStyles","baseGrid","defaultSpans","ContentWrapper","Content","contentStyles","MediaWrapper","ImageWrapper","DesktopSmall","ImageAnimation","m","disableAnimationClass","Test","Image","img","_props$image$altText","imageWidth","imageType","imageHeight","srcs","rootMargin","scrollYProgress","useScroll","offset","springYProgress","useSpring","stiffness","damping","imageAnimationOpacity","useTransform","imageAnimationX","imageAlignment","dangerouslySetInnerHTML","__html","content","cta","text","url","style","opacity","x","split","srcSet","join","alt","altText","loading","video","autoPlay","loop","muted","playsInline","poster","previewImage"],"sourceRoot":""}