{"version":3,"file":"static/chunks/pages/ramadan-activities-aab67100166a6a5d.js","mappings":"wGAAIA,E,WACJ,SAASC,IAAa,OAAOA,EAAWC,OAAOC,OAASD,OAAOC,OAAOC,OAAS,SAAUC,GAAK,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAIF,UAAUD,GAAI,IAAK,IAAII,KAAKD,GAAG,IAAKE,eAAeC,KAAKH,EAAGC,KAAOL,EAAEK,GAAKD,EAAEC,IAAO,OAAOL,GAAMJ,EAASY,MAAM,KAAMN,WAgBvQ,IAdqB,SAAwBO,GAC3C,OAAoB,gBAAoB,MAAOb,EAAS,CACtDc,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,MAAO,8BACNL,GAAQd,IAAUA,EAAqB,gBAAoB,OAAQ,CACpEoB,EAAG,oIACHF,KAAM,eACNG,SAAU,UACVC,SAAU,gB,uBCbTC,OAAOC,SAAWD,OAAOC,UAAY,IAAIC,KAAK,CAC7C,sBACA,WACE,OAAO,EAAQ,W,yGC4BjBC,EAA+B,Y,IACnCC,EAAQ,EAARA,SACAC,EAAM,EAANA,OACAC,EAAW,EAAXA,YACAC,EAAW,EAAXA,YAAW,IACXC,QAAAA,OAAO,IAAG,a,OAAM,SAACC,EAAAA,EAAO,KAAG,EAClBC,EAAqB,EAA9BC,QAASD,OAAqB,IAArBA,EAAcC,EAAAA,GAAdD,EAAqB,IAC9BE,wBAAAA,OAAuB,IAAG,GAAI,EAC9BC,EAAc,EAAdA,eAE8CC,GAAAA,EAAAA,EAAAA,GAC5CV,GACA,WACEM,OAAAA,EAAYN,GACTW,MAAK,SAACC,GAEL,OADc,OAAdH,QAAc,IAAdA,GAAAA,EAAiBG,GACVC,QAAQC,QAAQF,MAExBG,OAAM,SAACC,G,OAAQH,QAAQI,OAAOD,QACnC,CACEE,aAAcf,IAVVgB,EAAsCT,EAAtCS,KAAMC,EAAgCV,EAAhCU,MAAOC,EAAyBX,EAAzBW,aAAcC,EAAWZ,EAAXY,OAgBnC,GAAId,EAA0Ba,EAAeA,IAAiBF,EAC5D,OAAOf,IAWT,GAAIgB,EAAO,CAET,GAAIlB,EAAa,CACf,IAAMqB,EAAiBrB,EAAYkB,GAEnC,GAA8B,qBAAnBG,EACT,OAAOA,EAGX,OAAO,SAACC,EAAAA,EAAK,CAACC,eAjBO,WACrBH,KAgB8CF,MAAOA,IAGvD,OAAOnB,EAAOkB,IAGhB,KAAeO,EAAAA,EAAAA,MAAK3B,I,uECrFhB1B,E,gEACJ,SAASC,IAAa,OAAOA,EAAWC,OAAOC,OAASD,OAAOC,OAAOC,OAAS,SAAUC,GAAK,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAIF,UAAUD,GAAI,IAAK,IAAII,KAAKD,GAAG,IAAKE,eAAeC,KAAKH,EAAGC,KAAOL,EAAEK,GAAKD,EAAEC,IAAO,OAAOL,GAAMJ,EAASY,MAAM,KAAMN,WAEvQ,IAcA,EAde,SAAkBO,GAC/B,OAAoB,gBAAoB,MAAOb,EAAS,CACtDc,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,MAAO,8BACNL,GAAQd,IAAUA,EAAqB,gBAAoB,OAAQ,CACpEoB,EAAG,iYACHF,KAAM,eACNG,SAAU,UACVC,SAAU,e,WCoBd,EAnB+B,Y,IAAG8B,EAAc,EAAdA,eAAgBL,EAAK,EAALA,MAC1C,GAAQO,EAAAA,EAAAA,GAAe,UAArB7C,EACR,OACE,UAAC8C,MAAG,CAACC,UAAWC,IAAAA,U,WACd,SAACC,IAAC,CAACF,UAAWC,IAAAA,K,SACXV,EAAMY,UAAYC,EAAAA,GAAgBnD,EAAE,iBAAmBA,EAAE,oBAE5D,SAACoD,EAAAA,GAAM,CACLC,QAAQ,SAACC,EAAS,IAClBC,KAAMC,EAAAA,GAAAA,MACNC,KAAMC,EAAAA,GAAAA,UACNC,QAAShB,E,SAER3C,EAAE,gB,oHCGX,IAhBwC,SAACK,GACvC,IAAQuD,EAAmFvD,EAAnFuD,IAAKC,EAA8ExD,EAA9EwD,MAAOC,EAAuEzD,EAAvEyD,SAAUC,EAA6D1D,EAA7D0D,YAAaC,EAAgD3D,EAAhD2D,WAAYC,EAAoC5D,EAApC4D,UAAWC,EAAyB7D,EAAzB6D,YAAgBC,GAAI,OAAK9D,EAAK,CAAxFuD,MAAKC,QAAOC,WAAUC,cAAaC,aAAYC,YAAWC,gBAC5DE,GAAkB,UAClBH,GAAa,CAAEA,UAAAA,GACfL,GAAO,CAAEA,IAAAA,GACTC,GAAS,CACXQ,OAAQ,CAAC,CAAET,IAAKC,EAAOvD,MAAO0D,EAAYzD,OAAQwD,EAAaO,IAAKR,MAGlES,GAAS,UACVJ,EACCD,GAAe,CAAEA,aAAaM,EAAAA,EAAAA,IAAeN,EAAa,OAEhE,OAAO,SAACO,EAAAA,IAAO,kBAAKF,GAAM,CAAEN,UAAWG,O,sEChBzC,IAJiC,Y,IAAGM,EAAQ,EAARA,SAClC,OAAO,SAAC5B,MAAG,CAACC,UAAWC,IAAAA,U,SAAmB0B,M,2NC8D5C,IA/C6C,Y,IAAGC,EAAS,EAATA,UAAWC,EAAW,EAAXA,YAAaC,EAAS,EAATA,UAChEC,GAAoBC,EAAAA,EAAAA,IAAYC,EAAAA,GAAyBC,EAAAA,IACvDC,EAA2BJ,EAA3BI,UAAWC,EAAgBL,EAAhBK,YACb,GAAaC,EAAAA,EAAAA,IAAYF,EAAWC,GAAlCE,OACFC,GAAuBP,EAAAA,EAAAA,IAAYQ,EAAAA,GAA4BC,EAAAA,IAC/D,GAAW3C,EAAAA,EAAAA,KAAT4C,KAEFC,GAAY,gBAChBC,OAAO,EACPC,QAAS,EACTC,aAAcP,EAAqBQ,KAAK,KACxCC,KAAMnB,IACHoB,EAAAA,EAAAA,IAAqBlB,EAAkBI,YAAU,CACpDG,OAAAA,IAEF,OACE,SAACpE,EAAAA,EAAW,CAEVC,SAAU,oBAAiC0D,OAAbD,EAAU,KAAe,OAAZC,GAC3CnD,QAAS,W,OAAMA,EAAAA,EAAAA,KAAQwE,EAAAA,EAAAA,IAActB,EAAUuB,WAAYT,EAAMC,KACjEvE,OAAQ,SAACkB,G,IAEYA,EAMZ8D,EAPP,IAAK9D,EAAM,OAAO,KAClB,IAAM8D,EAAwB,QAAX9D,EAAAA,EAAK+D,cAAM,IAAX/D,OAAAA,EAAAA,EAAc,GACjC,OACE,UAACS,MAAG,CAACC,UAAWC,IAAAA,e,WACd,SAACqD,EAAAA,EAAgB,CAACD,OAAQ/D,EAAK+D,OAAQvB,UAAWA,KAElD,SAAC/B,MAAG,C,SACsB,QAAvBqD,EAAAA,EAAWN,oBAAY,IAAvBM,OAAAA,EAAAA,EAAyBG,KAAI,SAACC,GAC7B,OACE,SAACC,EAAAA,EAAe,CAEdC,qBAAsB3B,EAAkB2B,qBACxCC,KAAMH,EAAYG,KAClBC,WAAYJ,EAAYI,WACxBC,aAAcL,EAAYK,cAJrBL,EAAYM,iB,0NCarC,EA5CkD,Y,IAChDC,EAAY,EAAZA,aACAC,EAAQ,EAARA,SACAC,EAAc,EAAdA,eACAC,EAAa,EAAbA,cACAC,EAAS,EAATA,UAEoBrE,GAAAA,EAAAA,EAAAA,GAAe,gBAA3B7C,EAAY6C,EAAZ7C,EAAGyF,EAAS5C,EAAT4C,KAELkB,GAAqB,OAARI,QAAQ,IAARA,OAAAA,EAAAA,EAAUJ,cAAcQ,EAAAA,EAAAA,IAAuB1B,GAC5D2B,GAAWC,EAAAA,EAAAA,IAAoBV,GAErC,OACE,UAAC7D,MAAG,CAACC,UAAWC,IAAAA,kB,WACd,UAACF,MAAG,CAACC,UAAWC,IAAAA,O,WACd,UAACC,IAAC,C,UACCjD,EAAE,YAAY,IAAE8G,EAAe,KAAkB,OAAbA,GAAiB,SAExD,SAAC1D,EAAAA,GAAM,CACLG,KAAMC,EAAAA,GAAAA,MACN8D,QAASC,EAAAA,GAAAA,MACTC,MAAOC,EAAAA,GAAAA,OACP9D,QAASqD,E,UAET,SAACU,EAAAA,EAAS,SAGbR,GACC,SAAC3F,EAAAA,EAAO,KAER,SAACuB,OAAG,QACFC,UAAW4E,IACT3E,IAAAA,KACA4E,IAAYR,EAASS,WACrBD,IAAYR,EAASU,OAEvBC,wBAAyB,CAAEC,OAAQjB,EAASL,OACvCO,GAAiB,CAAEtD,QAASsD,S,sBC4I3C,EAhLyC,Y,IACvCR,EAAoB,EAApBA,qBACAC,EAAI,EAAJA,KACAC,EAAU,EAAVA,WACAC,EAAY,EAAZA,aAEM,GAAQ/D,EAAAA,EAAAA,GAAe,gBAArB7C,EAC0BiI,GAAAA,EAAAA,EAAAA,WAAS,GAApCf,EAA2Be,EAAe,GAA/BC,EAAgBD,EAAe,GACTA,GAAAA,EAAAA,EAAAA,WAAS,GAA1CE,EAAiCF,EAAc,GAAjCG,EAAmBH,EAAc,GACtBA,GAAAA,EAAAA,EAAAA,UAAmB,MAA5ClB,EAAyBkB,EAAwB,GAAvCI,EAAeJ,EAAwB,GACJA,GAAAA,EAAAA,EAAAA,UAAwB,MAArEK,EAA6CL,EAA6B,GAAtDM,EAAyBN,EAA6B,GACvBA,GAAAA,EAAAA,EAAAA,UAAwB,MAA3EO,EAAmDP,EAA6B,GAAzDQ,EAA4BR,EAA6B,GACjDA,GAAAA,EAAAA,EAAAA,UAAmB,MAAlDS,EAA+BT,EAAwB,GAA1CU,EAAkBV,EAAwB,GAExDW,EAAwB,CAC5BC,GAAI7I,EAAE,eACN8I,GAAI9I,EAAE,eACN+I,GAAI/I,EAAE,gBAGFgJ,EAAgB,WACpBX,EAAY,MACZM,EAAe,MACfT,GAAa,GACbK,EAAsB,MACtBE,EAAyB,OAGrBQ,EAAmB,WACvBN,EAAe,MACfF,EAAyB,OA4BrBxB,EAAgB,SAACiC,G,IAAmBC,EAAgB,UAAH,8CAC/CC,EAASF,EAAME,OAGrB,GAAuB,QAAnBA,EAAOC,QAAX,CAIA,IAAMC,EAAeF,EAAOG,UAAUC,OAGtC,GAAKL,EAuCE,CAELV,EAAyBa,GAEzB,IAAMG,EAAgB,GAAoBH,OAAjBvC,EAASF,GAAG,OAAkB,OAAbyC,GAEtCZ,GAAeA,EAAY7B,KAAO4C,IACpCC,EAAAA,EAAAA,IAAe,kDACfT,KACSL,EAAsBU,MAC/BI,EAAAA,EAAAA,IAAe,iCACff,EAAe,CACb9B,GAAI4C,EACJ/C,KAAMkC,EAAsBU,UApDd,CAClB,IAAMK,EAAaP,EAAOQ,aAAa,aAGvCrB,EAAsBe,GAGlBK,EAEExB,GAAgBpB,GAAYA,EAASF,KAAOgD,OAAOF,KACrDD,EAAAA,EAAAA,IAAe,8CACfV,OAEAU,EAAAA,EAAAA,IAAe,6BACfT,IACAb,GAAgB,GAChBF,GAAa,IACb4B,EAAAA,EAAAA,IAAYH,GACT9H,MAAK,SAACC,GACc,MAAfA,EAAIiI,QACN1B,EAAYvG,EAAIkI,aAGnBC,SAAQ,WACP/B,GAAa,OAGVnB,GAAYA,EAASF,KAAOyC,IAErCI,EAAAA,EAAAA,IAAe,0DACfV,KACSJ,EAAsBU,MAC/BI,EAAAA,EAAAA,IAAe,oCACfT,IACAZ,EAAY,CACVxB,GAAIyC,EACJ5C,KAAMkC,EAAsBU,SAsB9BY,GAAW7C,EAAAA,EAAAA,IAAoBV,GAE/BwD,EAAqBhC,IAAiBpB,GAAYG,GACxD,OACE,UAACpE,MAAG,CAACC,UAAWC,IAAO,yBAA8C,OAArByD,I,WAC9C,SAAC3D,MAAG,CACFa,QAAS,SAACuF,G,OAAUjC,EAAciC,IAClCnG,UAAW4E,IAAW3E,IAAAA,KAAaA,IAAOkH,EAASrC,WAAY7E,IAAOkH,EAASpC,OAC/EC,wBAAyB,CAAEC,OAAQtB,KAEpCyD,IACC,SAACC,EAAY,CACXtD,aAAcwB,QAAsB+B,EACpCtD,SAAUA,EACVG,UAAWA,EACXF,eAAgB,YACd0C,EAAAA,EAAAA,IAAe,8BACXxC,EAlBakB,GAAgB,GAqB/BY,KAGJ/B,cAAe,SAACiC,G,OAAUjC,EAAciC,GAAO,MAGlDR,IACC,SAAC0B,EAAY,CACXtD,aAAc0B,QAAyB6B,EACvCtD,SAAU2B,EACV1B,eAAgBiC,IAGnBrC,IACC,UAAC3D,IAAC,CACAF,UAAW4E,IACT3E,IAAAA,gBACAA,IAAOkH,EAASrC,WAChB7E,IAAOkH,EAASpC,O,UAGnB,UACIlB,U,uICpKb,IAf0C,Y,IAAGR,EAAM,EAANA,OAAQvB,EAAS,EAATA,UAC7C,GAAgBE,EAAAA,EAAAA,IAAYC,EAAAA,GAAyBC,EAAAA,IAAnDC,UACFoF,GAAeC,EAAAA,EAAAA,UACnB,W,OACE9K,OAAO+K,OAAOpE,GAAQE,KAAI,SAACmE,G,OAAW,kBACjCA,GAAK,CACRC,WAAYD,EAAM9E,MAAM,GAAG+E,kBAE/B,CAACtE,KAEHuE,EAAAA,EAAAA,GAAWzF,EAAWoF,GACtB,IAAM3E,GAAQ4E,EAAAA,EAAAA,UAAQ,W,OAAMnE,EAAOE,KAAI,SAACmE,G,OAAUG,EAAAA,EAAAA,IAAcH,MAAQI,SAAQ,CAACzE,IACjF,OAAO,SAAC0E,EAAAA,EAAc,CAACjG,UAAWA,EAAWc,MAAOA,M,uECF/C,E,8FAAKoF,GAAAA,EACN,KAAG,OADGA,EAEL,MAAG,Q,CAFEA,IAAAA,EAAoB,KAsEhC,IAjEoB,Y,QAClBC,cAAAA,OAAa,IAAG,GAAK,EACrB3H,EAAM,EAANA,OACA4H,EAAK,EAALA,MACAC,EAAM,EAANA,OACAxG,EAAQ,EAARA,SACAyG,EAA0B,EAA1BA,2BACAC,EAAU,EAAVA,WACAC,EAAY,EAAZA,aAAY,IACZxD,UAAAA,OAAS,IAAG,EAAAkD,EAAqBO,KAAI,EAETrD,GAAAA,EAAAA,EAAAA,UAAS+C,GAA9BO,EAAqBtD,EAAuB,GAApCuD,EAAavD,EAAuB,IAEnDwD,EAAAA,EAAAA,YAAU,WACRD,EAAUJ,KACT,CAACA,IASJ,OACE,UAACM,EAAAA,GAAyB,CAACL,aAAcA,EAAcM,KAAMJ,E,WAC3D,SAACG,EAAAA,GAA4B,CAACE,SAAO,E,UACnC,SAAC9I,MAAG,CAACC,UAAWC,IAAAA,OAAeW,QALb,W,OAAM6H,GAAU,SAACK,G,OAAcA,M,SAM9ChE,IAAckD,EAAqBO,MAClC,sB,WACE,UAACxI,MAAG,CAACC,UAAWC,IAAAA,W,WACd,SAACF,MAAG,CACFC,UAAW4E,IAAW3E,IAAAA,iBACpB,UAACA,IAAAA,cAAuBmI,GAA8BI,I,SAGvDlI,IAEF4H,MAEH,SAACnI,MAAG,CAACC,UAAWC,IAAAA,gBAAwBW,QAvB5B,SAAC9D,GACvBA,EAAEiM,iBACFjM,EAAEkM,mB,SAsBWb,QAIL,sB,WACE,SAACpI,MAAG,CAACC,UAAWC,IAAAA,W,SAAoBiI,KACpC,SAACnI,MAAG,CACFC,UAAW4E,IAAW3E,IAAAA,iBACpB,UAACA,IAAAA,cAAuBmI,GAA8BI,I,SAGvDlI,YAMX,SAACqI,EAAAA,GAAuC,C,SACrCH,GAAU7G,EAAS,CAAE6G,OAAAA,W,gHCd9B,IAhDmB,SAACrG,EAAsBkB,GACxC,IAAM4F,GAAyBC,EAAAA,EAAAA,QAAO,IAChCC,GAAWC,EAAAA,EAAAA,MACXC,GAAYC,EAAAA,EAAAA,IAAUnH,GACtBoH,GAAcvH,EAAAA,EAAAA,IAAYwH,EAAAA,IAC1BC,GAAeC,EAAAA,EAAAA,cACnB,SAACC,GACCR,GAASS,EAAAA,EAAAA,IAAkBD,MAE7B,CAACR,KAIHT,EAAAA,EAAAA,YAAU,WACJW,GAAahG,EAAOrG,OAAS,IAE/B6M,EAAAA,EAAAA,IAAiBxG,GAAQyG,SAAQ,SAACnC,GAChC,IAAMoC,EAAO5H,IAAc6H,EAAAA,GAAAA,SACrBC,GAAeC,EAAAA,EAAAA,IAAuBH,EAAMpC,GAC5CgC,EAAW,IAAIQ,SAASF,GAAcG,EAAAA,EAAAA,IAAwBL,EAAMpC,IAGvEsB,EAAuBoB,QAAQC,SAASL,IACxCV,EAAYe,SAASL,KAEtBhB,EAAuBoB,SAAU,OAAIpB,EAAuBoB,SAAvBpB,OAAJ,CAAoCgB,IACrEN,EAASY,QAAU,QACnBC,SAASC,MAAMC,IAAIf,GAEnBA,EACGgB,OACA7L,MAAK,WAEJ2K,EAAaQ,MAEd/C,SAAQ,WAEP+B,EAAuBoB,SAAUO,EAAAA,EAAAA,IAC/BX,EACAhB,EAAuBoB,kBAMlC,CAAClI,EAAWkB,EAAQkG,EAAaF,EAAWJ,EAAwBQ,M,oFC9DlE,EAWA,E,gICGP,EAdoC,Y,IAAGoB,EAAI,EAAJA,KAAMlH,EAAI,EAAJA,KAI3C,OACE,sB,UACG,KACD,SAACmH,EAAAA,EAAI,CAAClK,QANY,YACpB+F,EAAAA,EAAAA,IAAe,0BAA2B,CAAEkE,KAAAA,KAKZE,UAAQ,EAACF,KAAMA,E,SAC1ClH,IACK,Q,oBCOd,EArB4B,WAC1B,OACE,SAAC5D,MAAG,CAACC,UAAWC,IAAAA,UAAkB+K,IAAI,M,UACpC,SAACjL,MAAG,CAACC,UAAWC,IAAAA,a,UACd,UAACF,MAAG,CAACC,UAAWC,IAAAA,I,WACd,SAACC,IAAC,CAACF,UAAWC,IAAAA,O,SAAe,wBAC7B,UAACF,MAAG,CAACC,UAAWC,IAAAA,K,UAAa,wFAE3B,SAACgL,IAAC,C,SAAC,6CAA4C,yHAE/C,SAACC,KAAE,KACH,SAACA,KAAE,IAAG,6G,oDFNNC,GAAAA,EACK,gBAAG,kBADRA,EAEW,sBAAG,iBAFdA,EAGF,SAAG,WAHDA,EAII,eAAG,iBAJPA,EAKE,aAAG,eALLA,EAMG,cAAG,gBANNA,EAOJ,OAAG,SAPCA,EAQO,kBAAG,oB,CARVA,IAAAA,EAAO,K,SAWPC,GAAAA,EACD,UAAG,YADFA,EAEA,WAAG,a,CAFHA,IAAAA,EAAS,KAWrB,IAqCA,EArC6C,Y,IAC3CzJ,EAAQ,EAARA,SACA0J,EAAO,EAAPA,QAAO,IACPC,UAAAA,OAAS,IAAG,EAAAF,EAAUG,WAAU,EAE1B,GAAQzL,EAAAA,EAAAA,GAAe,UAArB7C,EASR,OACE,SAAC8C,MAAG,CAACC,UAAWC,IAAAA,U,UACd,SAACuL,EAAAA,EAAW,CACV1G,UAAWkD,EAAAA,EAAAA,MACXM,aAAc,SAACmD,G,OAXQ,SAACA,GACxBA,GACFC,EAAAA,EAAAA,IAAS,qCAAsC,CAAEL,QAAAA,KAEjDK,EAAAA,EAAAA,IAAS,qCAAsC,CAAEL,QAAAA,IAObM,CAAqBF,IACvDvD,OACE,SAAC0D,OAAI,CAAC5L,UAAWC,IAAAA,M,SACdhD,EAAEqO,IAAcF,EAAUG,WAAa,aAAe,eAG3DjL,QAAQ,SAACuL,EAAAA,EAAe,IACxBzD,4BAA0B,E,SAEzB,YACC,OAD0B,EAAxBI,QAGK,SAACzI,MAAG,CAACC,UAAWC,IAAAA,K,SAAc0B,IAFP,W,oDG7BlCmK,GAAOC,EAAAA,EAAAA,MA+Zb,EA9ZwC,WACtC,IAAoBjM,GAAAA,EAAAA,EAAAA,GAAe,sBAA3B7C,EAAY6C,EAAZ7C,EAAGyF,EAAS5C,EAAT4C,KAELsJ,EAAkB,SAACX,IACvB1E,EAAAA,EAAAA,IAAe,GAAW,OAAR0E,EAAQ,6BAG5B,OACE,sB,WACE,SAACY,EAAAA,EAAc,CACb/D,MAAOjL,EAAE,sBACT4D,KAAKqL,EAAAA,EAAAA,IAAgBxJ,EAAMoJ,GAC3BK,oBAAoBC,EAAAA,EAAAA,IAAsBN,GAC1C3K,YAAalE,EAAE,8BAEjB,SAACoP,EAAmB,KACpB,UAACC,EAAAA,EAAa,C,WACZ,SAACvM,MAAG,CAACC,UAAWuM,IAAAA,e,UACd,SAACC,EAAAA,EAAmB,CAAC5K,UAAW,EAAGC,YAAa,IAAKC,UAAW,OAElE,UAAC/B,MAAG,CAACC,UAAW4E,IAAW2H,IAAAA,UAAsBtM,IAAAA,aAAqB+K,IAAI,M,WACxE,UAACjL,MAAG,CAACC,UAAWC,IAAAA,WAAmB6D,GAAG,U,WACpC,SAAC2I,KAAE,C,SAAC,iCACJ,SAAC1M,MAAG,CAACC,UAAWC,IAAAA,W,SAAmB,kEAGnC,SAACF,MAAG,C,SAAC,kRAML,SAAC2M,EAAmB,CAACrB,QAASF,EAAQwB,gB,UACpC,UAAC5M,MAAG,C,UAAC,YAEH,SAAC6M,EAAU,CAACjJ,KAAK,UAAUkH,KAAK,2CAA2C,uIAG3E,SAAC+B,EAAU,CAACjJ,KAAK,mBAAmBkH,KAAK,6BAA6B,uKAK1E,SAAC9K,MAAG,CAACC,UAAWC,IAAAA,a,UACd,SAACI,EAAAA,GAAM,CACLO,QAAS,WACPoL,EAAgBb,EAAQwB,kBAE1BpI,QAASC,EAAAA,GAAAA,OACTqG,KAAK,2BACLE,UAAQ,EACR/K,UAAWC,IAAAA,O,SACZ,sCAKL,UAACF,MAAG,CAACC,UAAWC,IAAAA,WAAmB6D,GAAG,c,WACpC,SAAC2I,KAAE,C,SAAC,wCACJ,SAAC1M,MAAG,CAACC,UAAWC,IAAAA,W,SAAmB,6BACnC,SAACF,MAAG,C,SAAC,oOAKL,SAAC2M,EAAmB,CAACrB,QAASF,EAAQ0B,sB,UACpC,sB,WACE,SAAC9M,MAAG,C,SAAC,oPAML,SAACmL,KAAE,KACH,UAACnL,MAAG,C,UAAC,2IAGH,SAAC6M,EAAU,CAACjJ,KAAK,sBAAsBkH,KAAK,sCAAsC,uFAGlF,SAAC+B,EAAU,CACTjJ,KAAK,cACLkH,KAAK,gFACJ,IAAI,4BAKb,SAAC9K,MAAG,CAACC,UAAWC,IAAAA,a,UACd,SAACI,EAAAA,GAAM,CACLO,QAAS,WACPoL,EAAgBb,EAAQ0B,wBAE1BtI,QAASC,EAAAA,GAAAA,OACTqG,KAAK,8EACLE,UAAQ,EACR/K,UAAWC,IAAAA,O,SACZ,qCAKL,UAACF,MAAG,CAACC,UAAWC,IAAAA,WAAmB6D,GAAG,W,WACpC,SAAC2I,KAAE,C,SAAC,uDACJ,SAAC1M,MAAG,C,SAAC,iMAKL,SAAC2M,EAAmB,CAACrB,QAASF,EAAQ2B,S,UACpC,UAAC/M,MAAG,C,UAAC,8LAIH,SAACmL,KAAE,IAAG,iMAMV,SAACnL,MAAG,CAACC,UAAWC,IAAAA,a,UACd,SAACI,EAAAA,GAAM,CACLO,QAAS,WACPoL,EAAgBb,EAAQ2B,WAE1BvI,QAASC,EAAAA,GAAAA,OACTqG,KAAK,kCACLE,UAAQ,EACR/K,UAAWC,IAAAA,O,SACZ,yBAKL,UAACF,MAAG,CAACC,UAAWC,IAAAA,W,WACd,SAACwM,KAAE,C,SAAC,8CACJ,UAAC1M,MAAG,C,WACF,SAACkL,IAAC,C,SAAC,qDAAoD,oJAIzD,SAACyB,EAAmB,CAACrB,QAASF,EAAQ4B,e,UACpC,UAACC,KAAE,C,WACD,UAACC,KAAE,C,WACD,SAACL,EAAU,CACTjJ,KAAK,+CACLkH,KAAK,6CACL,0BAGJ,UAACoC,KAAE,C,WACD,SAACL,EAAU,CACTjJ,KAAK,0CACLkH,KAAK,wDACL,0BAGJ,UAACoC,KAAE,C,WACD,SAACL,EAAU,CACTjJ,KAAK,mCACLkH,KAAK,qDACL,6BAGJ,UAACoC,KAAE,C,UAAC,uEAEF,SAACL,EAAU,CAACjJ,KAAK,iBAAiBkH,KAAK,oBAAoB,iBAKjE,SAAC9K,MAAG,CAACC,UAAWC,IAAAA,a,UACd,SAACI,EAAAA,GAAM,CACLO,QAAS,WACPoL,EAAgBb,EAAQ4B,iBAE1BxI,QAASC,EAAAA,GAAAA,OACTqG,KAAK,kBACLE,UAAQ,EACR/K,UAAWC,IAAAA,O,SACZ,8BAKL,UAACF,MAAG,CAACC,UAAWC,IAAAA,W,WACd,SAACwM,KAAE,C,SAAC,yGAIJ,UAAC1M,MAAG,C,UAAC,mEAEH,SAAC6M,EAAU,CAACjJ,KAAK,SAASkH,MAAMqC,EAAAA,EAAAA,QAA2B,+HAI7D,SAACnN,MAAG,CAACC,UAAWC,IAAAA,a,UACd,SAACI,EAAAA,GAAM,CACLO,QAAS,WACPoL,EAAgBb,EAAQgC,eAE1B5I,QAASC,EAAAA,GAAAA,OACTqG,MAAMuC,EAAAA,EAAAA,MACNrC,UAAQ,EACR/K,UAAWC,IAAAA,O,SACZ,sBAKL,UAACF,MAAG,CAACC,UAAWC,IAAAA,W,WACd,SAACwM,KAAE,C,SAAC,sEACJ,UAAC1M,MAAG,C,UAAC,kGAEO,SAAC6M,EAAU,CAACjJ,KAAK,kBAAkBkH,KAAK,qBAAqB,yGAGzE,SAAC6B,EAAmB,CAACrB,QAASF,EAAQkC,c,UACpC,sB,WACE,UAACtN,MAAG,C,UAAC,6LAGG,SAAC6M,EAAU,CAACjJ,KAAK,4BAA4BkH,KAAK,qBAAqB,6EAG/E,SAACK,KAAE,KACH,UAACnL,MAAG,C,UAAC,8GAGH,SAAC6M,EAAU,CACTjJ,KAAK,iBACLkH,KAAK,oDACL,QAGJ,SAACK,KAAE,KACH,SAACnL,MAAG,C,SAAC,sHAIL,SAACmL,KAAE,KACH,SAACnL,MAAG,C,SAAC,kGAMT,SAACA,MAAG,CAACC,UAAWC,IAAAA,a,UACd,SAACI,EAAAA,GAAM,CACLO,QAAS,WACPoL,EAAgBb,EAAQkC,gBAE1B9I,QAASC,EAAAA,GAAAA,OACTqG,KAAK,mBACLE,UAAQ,EACR/K,UAAWC,IAAAA,O,SACZ,0BAKL,UAACF,MAAG,CAACC,UAAWC,IAAAA,W,WACd,SAACwM,KAAE,C,SAAC,yDACJ,UAAC1M,MAAG,C,UAAC,2PAIH,SAAC6M,EAAU,CACTjJ,KAAK,sBACLkH,KAAK,8EAGT,SAAC9K,MAAG,CAACC,UAAWC,IAAAA,a,UACd,SAACI,EAAAA,GAAM,CACLO,QAAS,WACPoL,EAAgBb,EAAQmC,SAE1B/I,QAASC,EAAAA,GAAAA,OACTqG,KAAK,wEACLE,UAAQ,EACR/K,UAAWC,IAAAA,O,SACZ,oCAKL,UAACF,MAAG,CAACC,UAAWC,IAAAA,WAAmB6D,GAAG,kB,WACpC,SAAC2I,KAAE,C,SAAC,4CACJ,SAAC1M,MAAG,C,SAAC,uJAIL,UAACiN,KAAE,C,WACD,SAACC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,iEACLkH,KAAK,4CAGT,SAACoC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,+BACLkH,KAAK,+CAIX,SAAC6B,EAAmB,CAClBrB,QAASF,EAAQoC,kBACjBjC,UAAWF,EAAUoC,U,UAErB,UAACR,KAAE,C,WACD,SAACC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,kEACLkH,KAAK,2CAGT,SAACoC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,oDACLkH,KAAK,2CAGT,SAACoC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,4DACLkH,KAAK,2CAGT,SAACoC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,2BACLkH,KAAK,4CAGT,SAACoC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,mEACLkH,KAAK,4CAGT,SAACoC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,wDACLkH,KAAK,4CAGT,SAACoC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,sCACLkH,KAAK,4CAGT,SAACoC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,2BACLkH,KAAK,0CAGT,SAACoC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,yEACLkH,KAAK,4CAGT,SAACoC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,iEACLkH,KAAK,4CAGT,SAACoC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,sDACLkH,KAAK,2CAGT,SAACoC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,4EACLkH,KAAK,4CAGT,SAACoC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,yDACLkH,KAAK,2CAGT,SAACoC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,kDACLkH,KAAK,2CAGT,SAACoC,KAAE,C,UACD,SAACL,EAAU,CACTjJ,KAAK,sEACLkH,KAAK,mDAMf,SAAC9K,MAAG,CAACC,UAAWC,IAAAA,W,SAAmB,kK,oHC3atC,IAAMwB,EAAiB,SAACgM,EAAmBzQ,GAGhD,I,IAHgEmL,EAAS,UAAH,6CAAG,MACnEuF,EAAaD,EAAUE,MAAM,GAAI3Q,GACnC4Q,EAAgB,GACXC,EAAQ,EAAGA,EAAQH,EAAW1Q,OAAQ6Q,GAAS,EAAG,CACzD,IAAMC,EAAYJ,EAAWG,GAC7B,GAAID,EAAc5Q,SAAWA,EAAS,EAAG,CACvC4Q,EAAgB,GAAmBE,OAAhBF,GAA4BzF,OAAZ2F,GAAmB,OAAP3F,GAC/C,MAEFyF,EAAgB,GAAmBE,OAAhBF,GAA0B,OAAVE,GAErC,OAAOF,GASIG,EAAgB,SAACN,G,OAA8BA,EAAUO,QAAQ,gBAAiB,KASlFC,EAAsC,SAACC,GAClD,IAAKA,EACH,MAAO,GAET,IAAMC,EAASD,EAAsBP,MAAM,KAE3C,OAAsB,IAAlBQ,EAAOnR,OACFmR,EAAO,GAETA,EAAOA,EAAOnR,OAAS,K,kBC9ChCoR,EAAOC,QAAU,CAAC,UAAY,yBAAyB,KAAO,sB,kBCA9DD,EAAOC,QAAU,CAAC,UAAY,iCAAiC,UAAY,mC,kBCA3ED,EAAOC,QAAU,CAAC,eAAiB,8C,kBCAnCD,EAAOC,QAAU,CAAC,kBAAoB,wCAAwC,KAAO,2BAA2B,OAAS,+B,kBCAzHD,EAAOC,QAAU,CAAC,KAAO,8BAA8B,0BAA0B,iDAAiD,0BAA0B,iDAAiD,0BAA0B,iDAAiD,0BAA0B,iDAAiD,0BAA0B,iDAAiD,0BAA0B,iDAAiD,0BAA0B,iDAAiD,0BAA0B,iDAAiD,0BAA0B,iDAAiD,2BAA2B,kDAAkD,IAAM,6BAA6B,IAAM,6BAA6B,KAAO,8BAA8B,QAAU,iCAAiC,OAAS,gCAAgC,gBAAkB,2C,kBCAx/BD,EAAOC,QAAU,CAAC,UAAY,wBAAwB,aAAe,2BAA2B,IAAM,kBAAkB,OAAS,qBAAqB,KAAO,qB,kBCA7JD,EAAOC,QAAU,CAAC,UAAY,uCAAuC,KAAO,kCAAkC,MAAQ,qC,kBCAtHD,EAAOC,QAAU,CAAC,OAAS,4BAA4B,WAAa,gCAAgC,gBAAkB,qCAAqC,cAAgB,mCAAmC,gBAAkB,uC,iBCAhOD,EAAOC,QAAU,CAAC,YAAc,iCAAiC,QAAU,6BAA6B,YAAc,iCAAiC,MAAQ,2BAA2B,KAAO,0BAA0B,UAAY,+BAA+B,YAAc,iCAAiC,aAAe,kCAAkC,QAAU,6BAA6B,WAAa,gCAAgC,aAAe,kCAAkC,KAAO,0BAA0B,WAAa,kC,kBCAzhBD,EAAOC,QAAU,CAAC,UAAY,qCAAqC,eAAiB,4C,oOCsBiB,MAAMC,EAAyC,eAC7IC,EAAgDC,IAA6C,OAA0BF,IACvHG,EAA2CC,GAA+CH,EAA+CD,GAC1IK,GAA0D,iBAAkB,CAACrR,EAAOsR,KACtF,MAAQC,mBAAoBA,EAAqBjG,KAAMkG,EAAWC,YAAaA,EAAcC,SAAUA,EAAW1G,aAAcA,KAAkB2G,GAAqB3R,GAChKsL,GAAO,EAAOsG,IAAW,OAA4B,CACxDC,KAAML,EACNM,YAAaL,EACbM,SAAU/G,IAEd,OAAqB,mBAAqBmG,EAA2C,CACjFa,MAAOT,EACPG,SAAUA,EACVO,WAAW,SACX3G,KAAMA,EACN4G,cAAc,kBAAmB,IAAIN,GAASO,IAAYA,KAExD,CACEP,MAES,mBAAqB,UAAsB,OAAqC,CAC7F,aAAcQ,EAA+B9G,GAC7C,gBAAiBoG,EAAW,QAAK1H,GAClC2H,EAAkB,CACjBU,IAAKf,SAQ8FgB,EAAqC,qBAC1IC,GAA0D,iBAAkB,CAACvS,EAAOsR,KACtF,MAAQC,mBAAoBA,KAAwBiB,GAAiBxS,EAC/DyS,EAAUrB,EAA4CkB,EAAoCf,GAChG,OAAqB,mBAAqB,aAAyB,OAAqC,CACpGnO,KAAM,SACN,gBAAiBqP,EAAQR,UACzB,gBAAiBQ,EAAQnH,OAAQ,EACjC,aAAc8G,EAA+BK,EAAQnH,MACrD,gBAAiBmH,EAAQf,SAAW,QAAK1H,EACzC0H,SAAUe,EAAQf,UACnBc,EAAc,CACbH,IAAKf,EACLhO,SAAS,OAA4BtD,EAAMsD,QAASmP,EAAQP,oBAQuCQ,EAAqC,qBAC1IC,GAA0D,iBAAkB,CAAC3S,EAAOsR,KACtF,MAAQsB,WAAYA,KAAgBC,GAAiB7S,EAC/CyS,EAAUrB,EAA4CsB,EAAoC1S,EAAMuR,oBACtG,OAAqB,mBAAqB,IAAiB,CACvDuB,QAASF,GAAcH,EAAQnH,OAChC,EAAGwH,QAASA,MAA2B,mBAAqBC,GAA8C,OAAqC,GAAIF,EAAc,CAC5JR,IAAKf,EACLwB,QAASA,UAOsFC,GAA6D,iBAAkB,CAAC/S,EAAOsR,KAC9L,MAAQC,mBAAoBA,EAAqBuB,QAASA,EAAUzO,SAAUA,KAAcwO,GAAiB7S,EACvGyS,EAAUrB,EAA4CsB,EAAoCnB,IACzFyB,EAAWC,IAAgB,cAAgBH,GAC5CT,GAAM,YAAc,MACpBa,GAAe,OAAuB5B,EAAce,GACpDc,GAAY,YAAc,GAC1BjT,EAASiT,EAAUpG,QACnBqG,GAAW,YAAc,GACzBnT,EAAQmT,EAASrG,QAEjB7B,EAASuH,EAAQnH,MAAQ0H,EACzBK,GAA+B,YAAcnI,GAC7CoI,GAAoB,cAkC1B,OAjCA,gBAAiB,KACb,MAAMC,EAAMC,uBAAsB,IAAIH,EAA6BtG,SAAU,IAE7E,MAAO,IAAI0G,qBAAqBF,KAEjC,KACH,QAAuB,KACnB,MAAMG,EAAOrB,EAAItF,QACjB,GAAI2G,EAAM,CACNJ,EAAkBvG,QAAUuG,EAAkBvG,SAAW,CACrD4G,mBAAoBD,EAAKE,MAAMD,mBAC/BE,cAAeH,EAAKE,MAAMC,eAE9BH,EAAKE,MAAMD,mBAAqB,KAChCD,EAAKE,MAAMC,cAAgB,OAC3B,MAAMC,EAAOJ,EAAKK,wBAClBZ,EAAUpG,QAAU+G,EAAK5T,OACzBkT,EAASrG,QAAU+G,EAAK7T,MACnBoT,EAA6BtG,UAC9B2G,EAAKE,MAAMD,mBAAqBL,EAAkBvG,QAAQ4G,mBAC1DD,EAAKE,MAAMC,cAAgBP,EAAkBvG,QAAQ8G,eAEzDZ,EAAaH,MAOd,CACHL,EAAQnH,KACRwH,KAEiB,mBAAqB,UAAsB,OAAqC,CACjG,aAAcV,EAA+BK,EAAQnH,MACrD,gBAAiBmH,EAAQf,SAAW,QAAK1H,EACzCxD,GAAIiM,EAAQR,UACZ+B,QAAS9I,GACV2H,EAAc,CACbR,IAAKa,EACLU,MAAO,CACH,qCAAwC1T,EAAS,GAAGA,WAAa8J,EACjE,oCAAuC/J,EAAQ,GAAGA,WAAY+J,KAC3DhK,EAAM4T,SAEb1I,GAAU7G,MAEmF,SAAS+N,EAA+B9G,GACzI,OAAOA,EAAO,OAAS,SAE3B,MAAM2I,EAA4C5C,EAC5C6C,EAA4C3B,I","sources":["webpack://_N_E/./public/icons/chevron-down.svg","webpack://_N_E/?7652","webpack://_N_E/./src/components/DataFetcher/index.tsx","webpack://_N_E/./public/icons/retry.svg","webpack://_N_E/./src/components/Error/index.tsx","webpack://_N_E/./src/components/NextSeoWrapper.tsx","webpack://_N_E/./src/components/PageContainer/index.tsx","webpack://_N_E/./src/components/QuranReader/TranslationView/EmbeddableVerseCell/index.tsx","webpack://_N_E/./src/components/QuranReader/TranslationView/TranslationText/FootnoteText.tsx","webpack://_N_E/./src/components/QuranReader/TranslationView/TranslationText/index.tsx","webpack://_N_E/./src/components/QuranReader/VerseTextPreview/index.tsx","webpack://_N_E/./src/components/dls/Collapsible/Collapsible.tsx","webpack://_N_E/./src/hooks/useQcfFont.ts","webpack://_N_E/./src/components/RamadanActivity/ReadMoreCollapsible/index.tsx","webpack://_N_E/./src/components/RamadanActivity/InlineLink.tsx","webpack://_N_E/./src/components/RamadanActivity/RamadanActivityHero/index.tsx","webpack://_N_E/./src/pages/ramadan-activities/index.tsx","webpack://_N_E/./src/utils/string.ts","webpack://_N_E/./src/components/Error/Error.module.scss","webpack://_N_E/./src/components/PageContainer/PageContainer.module.scss","webpack://_N_E/./src/components/QuranReader/TranslationView/EmbeddableVerseCell/EmbeddableVerseCell.module.scss","webpack://_N_E/./src/components/QuranReader/TranslationView/TranslationText/FootnoteText.module.scss","webpack://_N_E/./src/components/QuranReader/TranslationView/TranslationText/TranslationText.module.scss","webpack://_N_E/./src/components/RamadanActivity/RamadanActivityHero/Hero.module.scss","webpack://_N_E/./src/components/RamadanActivity/ReadMoreCollapsible/ReadMoreCollapsible.module.scss","webpack://_N_E/./src/components/dls/Collapsible/Collapsible.module.scss","webpack://_N_E/./src/pages/contentPage.module.scss","webpack://_N_E/./src/pages/ramadan-activities/RamadanActivities.module.scss","webpack://_N_E/./node_modules/@radix-ui/react-collapsible/dist/index.mjs"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgChevronDown = function SvgChevronDown(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 15,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.135 6.158a.5.5 0 0 1 .707-.023L7.5 9.565l3.658-3.43a.5.5 0 0 1 .684.73l-4 3.75a.5.5 0 0 1-.684 0l-4-3.75a.5.5 0 0 1-.023-.707Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgChevronDown;","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/ramadan-activities\",\n function () {\n return require(\"private-next-pages/ramadan-activities/index.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/ramadan-activities\"])\n });\n }\n ","import React, { memo } from 'react';\n\nimport useSWRImmutable from 'swr/immutable';\n\nimport Error from '@/components/Error';\nimport Spinner from '@/dls/Spinner/Spinner';\nimport { fetcher } from 'src/api';\nimport { BaseResponse } from 'types/ApiResponses';\n\ninterface Props {\n queryKey: string;\n render: (data: BaseResponse) => JSX.Element;\n renderError?: (error: any) => JSX.Element | undefined;\n initialData?: BaseResponse;\n loading?: () => JSX.Element;\n fetcher?: (queryKey: string) => Promise;\n showSpinnerOnRevalidate?: boolean;\n onFetchSuccess?: (data: BaseResponse) => void;\n}\n\n/**\n * Data fetcher is a dynamic component that serves as a container for a component\n * that depends on data from a remote API to render. This component handles:\n * 1. Calling the API.\n * 2. Caching the response (due to using useSwr).\n * 3. Handling errors if any by showing an error message.\n * 4. Handling when the user is offline while trying to fetch the API response.\n * 5. Dynamically passing the response data through render-props to the parent.\n *\n * @param {Props} props\n * @returns {JSX.Element}\n */\nconst DataFetcher: React.FC = ({\n queryKey,\n render,\n renderError,\n initialData,\n loading = () => ,\n fetcher: dataFetcher = fetcher,\n showSpinnerOnRevalidate = true,\n onFetchSuccess,\n}: Props): JSX.Element => {\n const { data, error, isValidating, mutate } = useSWRImmutable(\n queryKey,\n () =>\n dataFetcher(queryKey)\n .then((res) => {\n onFetchSuccess?.(res);\n return Promise.resolve(res);\n })\n .catch((err) => Promise.reject(err)),\n {\n fallbackData: initialData,\n },\n );\n\n // if showSpinnerOnRevalidate is true, we should show the spinner if we are revalidating the data.\n // otherwise, we should only show the spinner on initial loads.\n if (showSpinnerOnRevalidate ? isValidating : isValidating && !data) {\n return loading();\n }\n\n const onRetryClicked = () => {\n mutate();\n };\n\n /**\n * if we haven't fetched the data yet and the device is not online (because we don't want to show an offline message if the data already exists).\n * or if we had an error when calling the API.\n */\n if (error) {\n // if there is a custom error renderer, use it.\n if (renderError) {\n const errorComponent = renderError(error);\n // if the custom error renderer returns false, it means that it doesn't want to render anything special.\n if (typeof errorComponent !== 'undefined') {\n return errorComponent;\n }\n }\n return ;\n }\n\n return render(data);\n};\n\nexport default memo(DataFetcher);\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRetry = function SvgRetry(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 15,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.85 7.5c0-2.835 2.21-5.65 5.65-5.65 2.778 0 4.152 2.056 4.737 3.15H10.5a.5.5 0 0 0 0 1h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-1 0v1.813C12.296 3.071 10.666.85 7.5.85 3.437.85.85 4.185.85 7.5c0 3.315 2.587 6.65 6.65 6.65 1.944 0 3.562-.77 4.714-1.942a6.77 6.77 0 0 0 1.428-2.167.5.5 0 1 0-.925-.38 5.77 5.77 0 0 1-1.216 1.846c-.971.99-2.336 1.643-4.001 1.643-3.44 0-5.65-2.815-5.65-5.65Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgRetry;","import React from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './Error.module.scss';\n\nimport Button, { ButtonSize, ButtonType } from '@/dls/Button/Button';\nimport RetryIcon from '@/icons/retry.svg';\nimport { OFFLINE_ERROR } from 'src/api';\n\ninterface Props {\n onRetryClicked: () => void;\n error: Error;\n}\n\nconst Error: React.FC = ({ onRetryClicked, error }) => {\n const { t } = useTranslation('common');\n return (\n
\n

\n {error.message !== OFFLINE_ERROR ? t('error.general') : t('error.offline')}\n

\n }\n size={ButtonSize.Small}\n type={ButtonType.Secondary}\n onClick={onRetryClicked}\n >\n {t('retry')}\n \n
\n );\n};\n\nexport default Error;\n","import React from 'react';\n\nimport { NextSeo } from 'next-seo';\n\nimport { SEOProps } from '@/utils/seo';\nimport { truncateString } from '@/utils/string';\n\ninterface Props extends SEOProps {\n url?: string;\n image?: string;\n imageAlt?: string;\n imageWidth?: number;\n imageHeight?: number;\n}\n\nconst NextSeoWrapper: React.FC = (props) => {\n const { url, image, imageAlt, imageHeight, imageWidth, openGraph, description, ...rest } = props;\n const openGraphParams = {\n ...(openGraph && { openGraph }),\n ...(url && { url }),\n ...(image && {\n images: [{ url: image, width: imageWidth, height: imageHeight, alt: imageAlt }],\n }),\n };\n const params = {\n ...rest,\n ...(description && { description: truncateString(description, 150) }),\n };\n return ;\n};\n\nexport default NextSeoWrapper;\n","import { ReactNode, FC } from 'react';\n\nimport styles from './PageContainer.module.scss';\n\ntype Props = {\n children: ReactNode | ReactNode[];\n};\n\nconst PageContainer: FC = ({ children }) => {\n return
{children}
;\n};\n\nexport default PageContainer;\n","import React from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\nimport { shallowEqual, useSelector } from 'react-redux';\n\nimport styles from './EmbeddableVerseCell.module.scss';\n\nimport { fetcher } from '@/api';\nimport DataFetcher from '@/components/DataFetcher';\nimport TranslationText from '@/components/QuranReader/TranslationView/TranslationText';\nimport VerseTextPreview from '@/components/QuranReader/VerseTextPreview';\nimport { selectQuranReaderStyles } from '@/redux/slices/QuranReader/styles';\nimport { selectSelectedTranslations } from '@/redux/slices/QuranReader/translations';\nimport { VersesResponse } from '@/types/ApiResponses';\nimport { getMushafId, getDefaultWordFields } from '@/utils/api';\nimport { makeVersesUrl } from '@/utils/apiPaths';\nimport { areArraysEqual } from '@/utils/array';\n\ntype Props = {\n chapterId: number;\n verseNumber: number;\n fontScale?: number;\n};\n\nconst EmbeddableVerseCell: React.FC = ({ chapterId, verseNumber, fontScale }) => {\n const quranReaderStyles = useSelector(selectQuranReaderStyles, shallowEqual);\n const { quranFont, mushafLines } = quranReaderStyles;\n const { mushaf } = getMushafId(quranFont, mushafLines);\n const selectedTranslations = useSelector(selectSelectedTranslations, areArraysEqual);\n const { lang } = useTranslation();\n\n const apiParams = {\n words: true,\n perPage: 1,\n translations: selectedTranslations.join(','),\n page: verseNumber,\n ...getDefaultWordFields(quranReaderStyles.quranFont),\n mushaf,\n };\n return (\n fetcher(makeVersesUrl(chapterId.toString(), lang, apiParams))}\n render={(data: VersesResponse) => {\n if (!data) return null;\n const firstVerse = data.verses?.[0];\n return (\n
\n \n\n
\n {firstVerse.translations?.map((translation) => {\n return (\n \n );\n })}\n
\n
\n );\n }}\n />\n );\n};\n\nexport default EmbeddableVerseCell;\n","/* eslint-disable react/no-danger */\n\nimport React, { MouseEvent } from 'react';\n\nimport classNames from 'classnames';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './FootnoteText.module.scss';\nimport transStyles from './TranslationText.module.scss';\n\nimport Button, { ButtonSize, ButtonShape, ButtonVariant } from '@/dls/Button/Button';\nimport Spinner from '@/dls/Spinner/Spinner';\nimport CloseIcon from '@/icons/close.svg';\nimport { getLanguageDataById, findLanguageIdByLocale } from '@/utils/locale';\nimport Footnote from 'types/Footnote';\n\ninterface FootnoteTextProps {\n footnoteName?: string; // can be a number or a string (e.g. \"sg\" or \"pl\")\n footnote: Footnote;\n onCloseClicked: () => void;\n onTextClicked?: (event: MouseEvent, isSubFootnote?: boolean) => void;\n isLoading?: boolean;\n}\n\nconst FootnoteText: React.FC = ({\n footnoteName,\n footnote,\n onCloseClicked,\n onTextClicked,\n isLoading,\n}) => {\n const { t, lang } = useTranslation('quran-reader');\n\n const languageId = footnote?.languageId || findLanguageIdByLocale(lang);\n const landData = getLanguageDataById(languageId);\n\n return (\n
\n
\n

\n {t('footnote')} {footnoteName ? `- ${footnoteName}` : null}\n

\n \n \n \n
\n {isLoading ? (\n \n ) : (\n \n )}\n
\n );\n};\n\nexport default FootnoteText;\n","/* eslint-disable react-func/max-lines-per-function */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable react/no-danger */\n\nimport React, { MouseEvent, useState } from 'react';\n\nimport classNames from 'classnames';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport FootnoteText from './FootnoteText';\nimport styles from './TranslationText.module.scss';\n\nimport { logButtonClick } from '@/utils/eventLogger';\nimport { getLanguageDataById } from '@/utils/locale';\nimport { getFootnote } from 'src/api';\nimport Footnote from 'types/Footnote';\n\ninterface Props {\n translationFontScale: number;\n text: string;\n resourceName?: string;\n languageId: number;\n}\n\nconst TranslationText: React.FC = ({\n translationFontScale,\n text,\n languageId,\n resourceName,\n}) => {\n const { t } = useTranslation('quran-reader');\n const [isLoading, setIsLoading] = useState(false);\n const [showFootnote, setShowFootnote] = useState(true);\n const [footnote, setFootnote] = useState(null);\n const [activeFootnoteName, setActiveFootnoteName] = useState(null);\n const [activeSubFootnoteName, setActiveSubFootnoteName] = useState(null);\n const [subFootnote, setSubFootnote] = useState(null);\n\n const PRE_DEFINED_FOOTNOTES = {\n sg: t('footnote-sg'),\n pl: t('footnote-pl'),\n dl: t('footnote-dl'),\n };\n\n const resetFootnote = () => {\n setFootnote(null);\n setSubFootnote(null);\n setIsLoading(false);\n setActiveFootnoteName(null);\n setActiveSubFootnoteName(null);\n };\n\n const resetSubFootnote = () => {\n setSubFootnote(null);\n setActiveSubFootnoteName(null);\n };\n\n /**\n * Handle when the translation text is clicked. This is needed to handle when a footnote\n * is clicked since we receive the translation text as HTML from BE. Any footnote will\n * be inside an ... element. so when the translation container is clicked\n * we check whether the clicked element is of tag name SUP and if so, we handle showing the\n * footnote as following:\n *\n * 1. If it's not a sub-footnote (a footnote inside a footnote) which is all translations\n * except Bridge's Foundation translation:\n * 1. check if the sup element has foot_note attribute (the ID) and if it has:\n * 1. Check if we already have a footnote in the local state with the same ID:\n * 1. if yes, it means this is the second time the user clicks on the\n * footnote so we should close the footnote.\n * 2. if no, it means we need to call BE to fetch the footnote text by its ID.\n * 2. if not, it means it's a pre-defined footnote and in this case, we access the text\n * inside the element and check if it's in the list of pre-defined footnotes and if it\n * is, we get the value from the pre-defined footnotes and assign it as the footnote\n * text without having to call BE (only happens with Bridge's Foundation translation)\n * 2. If it's a sub-footnote it will only have pre-defined footnotes so we handle it the same\n * way as above (only happens with Bridge's Foundation translation, ex: Surah 30, Verse 11).\n *\n * @param {MouseEvent} event\n * @param {boolean} isSubFootnote whether we are handling a footnote or a sub-footnote (only happens\n * with Bridge's Foundation translation).\n */\n const onTextClicked = (event: MouseEvent, isSubFootnote = false) => {\n const target = event.target as HTMLElement;\n\n // if we just clicked on anything other than a footnote element, return early.\n if (target.tagName !== 'SUP') {\n return;\n }\n // we get the text inside the sup element and trim the extra spaces.\n const footnoteText = target.innerText.trim();\n\n // if it's the main footnote and not the sub footnote.\n if (!isSubFootnote) {\n const footNoteId = target.getAttribute('foot_note');\n\n // Set the activeFootnoteNumber to the current number of the footnote from the innerHTML\n setActiveFootnoteName(footnoteText);\n\n // if it's the normal case that needs us to call BE and not a fixed footnote like the ones found for Bridge's translation.\n if (footNoteId) {\n // if this is the second time to click the footnote, close it\n if (showFootnote && footnote && footnote.id === Number(footNoteId)) {\n logButtonClick('translation_footnote_double_click_to_close');\n resetFootnote();\n } else {\n logButtonClick('translation_show_footnote');\n resetSubFootnote();\n setShowFootnote(true);\n setIsLoading(true);\n getFootnote(footNoteId)\n .then((res) => {\n if (res.status !== 500) {\n setFootnote(res.footNote);\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n }\n } else if (footnote && footnote.id === footnoteText) {\n // if this is the second time we are clicking on the footnote, we close it.\n logButtonClick('translation_pre_defined_footnote_double_click_to_close');\n resetFootnote();\n } else if (PRE_DEFINED_FOOTNOTES[footnoteText]) {\n logButtonClick('translation_pre_defined_footnote');\n resetSubFootnote();\n setFootnote({\n id: footnoteText,\n text: PRE_DEFINED_FOOTNOTES[footnoteText],\n });\n }\n } else {\n // Set the activeSubFootnoteNumber to the current number of the footnote from the innerHTML\n setActiveSubFootnoteName(footnoteText);\n\n const subFootnoteId = `${footnote.id} - ${footnoteText}`;\n // if this is the second time we are clicking on the sub footnote, we close it.\n if (subFootnote && subFootnote.id === subFootnoteId) {\n logButtonClick('translation_sub_footnote_double_click_to_close');\n resetSubFootnote();\n } else if (PRE_DEFINED_FOOTNOTES[footnoteText]) {\n logButtonClick('translation_show_sub_footnote');\n setSubFootnote({\n id: subFootnoteId,\n text: PRE_DEFINED_FOOTNOTES[footnoteText],\n });\n }\n }\n };\n const hideFootnote = () => setShowFootnote(false);\n const langData = getLanguageDataById(languageId);\n\n const shouldShowFootnote = showFootnote && (footnote || isLoading);\n return (\n
\n onTextClicked(event)}\n className={classNames(styles.text, styles[langData.direction], styles[langData.font])}\n dangerouslySetInnerHTML={{ __html: text }}\n />\n {shouldShowFootnote && (\n {\n logButtonClick('translation_footnote_close');\n if (isLoading) {\n hideFootnote();\n } else {\n resetFootnote();\n }\n }}\n onTextClicked={(event) => onTextClicked(event, true)}\n />\n )}\n {subFootnote && (\n \n )}\n {resourceName && (\n \n — {resourceName}\n

\n )}\n
\n );\n};\n\nexport default TranslationText;\n","import React, { useMemo } from 'react';\n\nimport { shallowEqual, useSelector } from 'react-redux';\n\nimport PlainVerseText from '@/components/Verse/PlainVerseText';\nimport useQcfFont from '@/hooks/useQcfFont';\nimport { selectQuranReaderStyles } from '@/redux/slices/QuranReader/styles';\nimport { getVerseWords } from '@/utils/verse';\nimport Verse from 'types/Verse';\n\ninterface Props {\n verses: Verse[];\n fontScale?: number;\n}\n\nconst VerseTextPreview: React.FC = ({ verses, fontScale }) => {\n const { quranFont } = useSelector(selectQuranReaderStyles, shallowEqual);\n const tafsirVerses = useMemo(\n () =>\n Object.values(verses).map((verse) => ({\n ...verse,\n pageNumber: verse.words[0].pageNumber,\n })),\n [verses],\n );\n useQcfFont(quranFont, tafsirVerses);\n const words = useMemo(() => verses.map((verse) => getVerseWords(verse)).flat(), [verses]);\n return ;\n};\n\nexport default VerseTextPreview;\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React, { useEffect, useState } from 'react';\n\nimport * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\nimport classNames from 'classnames';\n\nimport styles from './Collapsible.module.scss';\n\ntype ChildrenRenderProps = {\n isOpen: boolean;\n};\n\ntype Props = {\n title?: React.ReactNode;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n children: ({ isOpen }: ChildrenRenderProps) => React.ReactNode;\n isDefaultOpen?: boolean;\n shouldOpen?: boolean;\n shouldRotatePrefixOnToggle?: boolean;\n onOpenChange?: (isOpen: boolean) => void;\n direction?: CollapsibleDirection;\n};\n\nexport enum CollapsibleDirection {\n Left = 'left',\n Right = 'right',\n}\n\nconst Collapsible = ({\n isDefaultOpen = false,\n prefix,\n title,\n suffix,\n children,\n shouldRotatePrefixOnToggle,\n shouldOpen,\n onOpenChange,\n direction = CollapsibleDirection.Left,\n}: Props) => {\n const [isOpen, setIsOpen] = useState(isDefaultOpen);\n\n useEffect(() => {\n setIsOpen(shouldOpen);\n }, [shouldOpen]);\n\n const onSuffixClicked = (e) => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n const onHeaderClicked = () => setIsOpen((preValue) => !preValue);\n\n return (\n \n \n
\n {direction === CollapsibleDirection.Left ? (\n <>\n
\n \n {prefix}\n
\n {title}\n
\n
\n {suffix}\n
\n \n ) : (\n <>\n
{title}
\n \n {prefix}\n \n \n )}\n \n
\n \n {isOpen && children({ isOpen })}\n \n
\n );\n};\n\nexport default Collapsible;\n","import { useEffect, useCallback, useRef } from 'react';\n\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { selectLoadedFontFaces, addLoadedFontFace } from '@/redux/slices/QuranReader/font-faces';\nimport { removeItemFromArray } from '@/utils/array';\nimport {\n getFontFaceNameForPage,\n getV1OrV2FontFaceSource,\n getPagesByVerses,\n isQCFFont,\n} from '@/utils/fontFaceHelper';\nimport { QuranFont } from 'types/QuranReader';\nimport Verse from 'types/Verse';\n\n/**\n * This hook manually request the browser to download the font for each page\n * of QCF's V1 and V2 Mushafs. After each resource has been downloaded, we\n * store it in redux so that VerseText can use it to determine whether the fallback\n * text and font should be font or not.\n *\n * Notes, loaded font is reset every time the user switch the font\n * see src/components/Navbar/SettingsDrawer/QuranFontSection.tsx\n *\n * @param {QuranFont} quranFont\n * @param {Verse[]} verses\n */\nconst useQcfFont = (quranFont: QuranFont, verses: Verse[]) => {\n const currentlyFetchingFonts = useRef([]);\n const dispatch = useDispatch();\n const isFontQCF = isQCFFont(quranFont);\n const loadedFonts = useSelector(selectLoadedFontFaces);\n const onFontLoaded = useCallback(\n (fontFace: string) => {\n dispatch(addLoadedFontFace(fontFace));\n },\n [dispatch],\n );\n\n // listen to changes in verses (this is due to infinite scrolling fetching more verses).\n useEffect(() => {\n if (isFontQCF && verses.length > 0) {\n // loop through unique page numbers of the current verses\n getPagesByVerses(verses).forEach((pageNumber) => {\n const isV1 = quranFont === QuranFont.MadaniV1;\n const fontFaceName = getFontFaceNameForPage(isV1, pageNumber);\n const fontFace = new FontFace(fontFaceName, getV1OrV2FontFaceSource(isV1, pageNumber));\n // we only want to load fonts that were not loaded and also are not currently being loaded\n if (\n !currentlyFetchingFonts.current.includes(fontFaceName) &&\n !loadedFonts.includes(fontFaceName)\n ) {\n currentlyFetchingFonts.current = [...currentlyFetchingFonts.current, fontFaceName];\n fontFace.display = 'block';\n document.fonts.add(fontFace);\n // load the font-face programmatically\n fontFace\n .load()\n .then(() => {\n // store the font face in Redux slice\n onFontLoaded(fontFaceName);\n })\n .finally(() => {\n // whether we failed or succeeded to fetch the fontFace, we remove it from currently fetching array\n currentlyFetchingFonts.current = removeItemFromArray(\n fontFaceName,\n currentlyFetchingFonts.current,\n );\n });\n }\n });\n }\n }, [quranFont, verses, loadedFonts, isFontQCF, currentlyFetchingFonts, onFontLoaded]);\n};\n\nexport default useQcfFont;\n","import React from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './ReadMoreCollapsible.module.scss';\n\nimport Collapsible, { CollapsibleDirection } from '@/components/dls/Collapsible/Collapsible';\nimport ChevronDownIcon from '@/icons/chevron-down.svg';\nimport { logEvent } from '@/utils/eventLogger';\n\nexport enum Section {\n MINDFUL_FASTING = 'mindful_fasting',\n AYAH_LOOKUP_CHALLENGE = 'ayah_challenge',\n MAS_QUIZ = 'mas_quiz',\n LEARNING_PLANS = 'learning_plans',\n MONTH_STREAK = 'month_streak',\n INVITE_PEOPLE = 'invite_people',\n CRISIS = 'crises',\n INSPIRING_READING = 'inspiring_reading',\n}\n\nexport enum TitleType {\n SHOW_MORE = 'show_more',\n LEARN_MORE = 'learn_more',\n}\n\ntype Props = {\n children: React.ReactNode;\n section: Section;\n titleType?: TitleType;\n};\n\nconst ReadMoreCollapsible: React.FC = ({\n children,\n section,\n titleType = TitleType.LEARN_MORE,\n}) => {\n const { t } = useTranslation('common');\n\n const onCollapseOpenChange = (isCollapseOpen: boolean) => {\n if (isCollapseOpen) {\n logEvent('ramadan_activities_collapse_opened', { section });\n } else {\n logEvent('ramadan_activities_collapse_closed', { section });\n }\n };\n return (\n
\n onCollapseOpenChange(isCollapseOpen)}\n title={\n \n {t(titleType === TitleType.LEARN_MORE ? 'learn-more' : 'show-more')}\n \n }\n prefix={}\n shouldRotatePrefixOnToggle\n >\n {({ isOpen: isOpenRenderProp }) => {\n if (!isOpenRenderProp) return null;\n\n return
{children}
;\n }}\n \n
\n );\n};\n\nexport default ReadMoreCollapsible;\n","import React from 'react';\n\nimport Link from '@/dls/Link/Link';\nimport { logButtonClick } from '@/utils/eventLogger';\n\ntype Props = {\n href: string;\n text: string;\n};\n\nconst InlineLink: React.FC = ({ href, text }) => {\n const onLinkClicked = () => {\n logButtonClick('ramadan_activities_link', { href });\n };\n return (\n <>\n {' '}\n \n {text}\n {' '}\n \n );\n};\n\nexport default InlineLink;\n","/* eslint-disable i18next/no-literal-string */\nimport React from 'react';\n\nimport styles from './Hero.module.scss';\n\nconst RamadanActivityHero = () => {\n return (\n
\n
\n
\n

Ramadan Activities

\n
\n As we welcome the month of Ramadan, were excited to present programs and features to\n help you on your journey with the Quran. These resources are aimed at enriching\n and deepening your connection with the words of Allah in Ramadan and beyond.\n
\n
\n Browse the list and select the programs and features that align best with your goals and\n needs:\n
\n
\n
\n
\n );\n};\n\nexport default RamadanActivityHero;\n","/* eslint-disable react/no-unescaped-entities */\n/* eslint-disable max-lines */\n/* eslint-disable i18next/no-literal-string */\n/* eslint-disable jsx-a11y/anchor-has-content */\n/* eslint-disable jsx-a11y/control-has-associated-label */\nimport classNames from 'classnames';\nimport { NextPage } from 'next';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport pageStyles from './RamadanActivities.module.scss';\n\nimport NextSeoWrapper from '@/components/NextSeoWrapper';\nimport PageContainer from '@/components/PageContainer';\nimport EmbeddableVerseCell from '@/components/QuranReader/TranslationView/EmbeddableVerseCell';\nimport InlineLink from '@/components/RamadanActivity/InlineLink';\nimport RamadanActivityHero from '@/components/RamadanActivity/RamadanActivityHero';\nimport ReadMoreCollapsible, {\n Section,\n TitleType,\n} from '@/components/RamadanActivity/ReadMoreCollapsible';\nimport Button, { ButtonVariant } from '@/dls/Button/Button';\nimport styles from '@/pages/contentPage.module.scss';\nimport { logButtonClick } from '@/utils/eventLogger';\nimport { getLanguageAlternates } from '@/utils/locale';\nimport {\n getCanonicalUrl,\n getLoginNavigationUrl,\n getRamadanActivitiesNavigationUrl,\n getReadingGoalNavigationUrl,\n} from '@/utils/navigation';\n\nconst PATH = getRamadanActivitiesNavigationUrl();\nconst RamadanActivitiesPage: NextPage = (): JSX.Element => {\n const { t, lang } = useTranslation('ramadan-activities');\n\n const onButtonClicked = (section: Section) => {\n logButtonClick(`${section}_ramadan_activities_cta`);\n };\n\n return (\n <>\n \n \n \n
\n \n
\n
\n
\n

Mindful Fasting📿

\n
\n A QuranReflect interactive Program with Shaykh Hammad Fahim.\n
\n
\n “Mindful Fasting” will explore how fasting purifies the soul, disciplines the mind,\n and awakens the heart, offering a transformative experience that deepens our\n relationship with Allah. This program is a gateway to a profound journey of faith and\n reflection.\n
\n \n
\n When you\n \n for QuranReflect.com you will automatically follow Shaykh Fahim and receive updates.\n Search #MindfulFasting throughout the month on\n \n to read reflections from the community. (If you already have a Quran.com account -\n signing in to QuranReflect with the same email will link the two accounts.)\n
\n
\n
\n {\n onButtonClicked(Section.MINDFUL_FASTING);\n }}\n variant={ButtonVariant.Shadow}\n href=\"https://quranreflect.com\"\n isNewTab\n className={styles.button}\n >\n Join QuranReflect Community\n \n
\n
\n
\n

Ayah Lookup Challenge 🔎

\n
with Dr Mohannad Hakeem
\n
\n Are you seeking to enhance your connection with the Quran while being challenged to\n delve deeper and search for answers? If so, consider exploring a fresh approach that\n can help you deepen your relationship with the Quran.\n
\n \n <>\n
\n Join Dr. Mohannad Hakeem's Ayah Lookup Challenge where he will share a question\n that can be answered with an ayah in the Quran. Sharpen your reading and\n researching skills as you search for the answer within the suggested range of\n verses.\n
\n
\n
\n Check back at the end of the day when Dr. Mohannad posts the answer to see if you\n got it right. To join this exciting challenge, follow\n \n on QuranReflect.com and take part in this enriching experience! You may also\n search\n {' '}\n on QuranReflect.\n
\n \n
\n
\n {\n onButtonClicked(Section.AYAH_LOOKUP_CHALLENGE);\n }}\n variant={ButtonVariant.Shadow}\n href=\"https://quranreflect.com/?authors=%40mohannad&tags=%23AyahLookup&tab=newest\"\n isNewTab\n className={styles.button}\n >\n Follow AyahLookupChallenge\n \n
\n
\n
\n

MAS Ramadan Quiz Trivia (live) 🎙️

\n
\n A daily 10-minute live trivia quiz featuring 10 quick questions from the Quran.\n Participants will also be assigned one Quran verse a week to reflect upon. See below\n for details on prizes!\n
\n \n
\n To help achieve a closer connection with the Quran, MAS will host a nationwide\n 10-minute live, interactive quiz daily where contestants get to test and show their\n knowledge of the Quran.\n
\n MAS will offer winners residing in the U.S. monetary prizes with the option to\n donate them to a charity (Insha’Allah, prizes can be extended to a global audience\n in coming years.)\n
\n
\n
\n {\n onButtonClicked(Section.MAS_QUIZ);\n }}\n variant={ButtonVariant.Shadow}\n href=\"https://quranreflect.com/masrqt\"\n isNewTab\n className={styles.button}\n >\n Follow MAS RQT\n \n
\n
\n
\n

Learning Plans on Quran.com 📖

\n
\n Boost your knowledge with easy-to-follow lessons that keep you growing in your\n journey with the Quran. Your progress is tracked until you reach the finish line.\n Start a Learning Plan today!\n
\n \n
    \n
  • \n \n by Dr. Sohaib Saeed\n
  • \n
  • \n \n by Dr. Sohaib Saeed\n
  • \n
  • \n \n by Shaykh Hammad Fahim\n
  • \n
  • \n More programs coming soon, insha’Allah. Keep an eye out on our\n \n page.\n
  • \n
\n
\n
\n {\n onButtonClicked(Section.LEARNING_PLANS);\n }}\n variant={ButtonVariant.Shadow}\n href=\"/learning-plans\"\n isNewTab\n className={styles.button}\n >\n View Learning Plans\n \n
\n
\n
\n

\n Keep a 30 day Quran reading streak and create a custom goal with Quran Growth Journey!\n 🏅\n

\n
\n Can you keep a 30 day Quran reading streak This Ramadan? Simply\n \n to Quran.com and begin reading to start your Streak! You can also create a custom goal\n that will help you stay on track:\n
\n
\n {\n onButtonClicked(Section.MONTH_STREAK);\n }}\n variant={ButtonVariant.Shadow}\n href={getReadingGoalNavigationUrl()}\n isNewTab\n className={styles.button}\n >\n Create Goal\n \n
\n
\n
\n

Invite people to learn about the Quran this Ramadan 💌

\n
\n Help someone who has never read the Quran learn more and begin their Quran journey!\n Share our page designed\n to help newcomers ease into their Quran reading experience. View sample invitation:\n
\n \n <>\n
\n “Ramadan is not just a month of fasting for Muslims; it's also about the Quran's\n revelation, a time of deep reflection & connection. 📖 Curious about its messages?\n Visit to\n find answers to key questions and tips on how to explore it.”\n
\n
\n
\n You can also share an invitation to view responses to a reflection activity based\n on the the viral hashtag\n \n .\n
\n
\n
\n QuranReflect asks: \"If you could introduce someone to the Quran with just one\n ayah, which would it be, and why?\"\n
\n
\n
\n View responses, write your own, and invite people to read the Quran for the first\n time.\n
\n \n
\n
\n {\n onButtonClicked(Section.INVITE_PEOPLE);\n }}\n variant={ButtonVariant.Shadow}\n href=\"/about-the-quran\"\n isNewTab\n className={styles.button}\n >\n About The Quran\n \n
\n
\n
\n

Reflecting In Crisis ❤️‍🩹

\n
\n Join the QuranReflect community for an on-going reflection theme dedicated to\n reflecting upon the Quran during these difficult times of crisis. Read and interact\n with over 60 Personal reflections shared by our community members and share your own.\n \n
\n
\n {\n onButtonClicked(Section.CRISIS);\n }}\n variant={ButtonVariant.Shadow}\n href=\"https://quranreflect.com/?tags=%23ReflectingInCrisis&tab=most_popular\"\n isNewTab\n className={styles.button}\n >\n Go to #ReflectingInCrisis\n \n
\n
\n
\n

Inspiring Ramadan Reading 🌞

\n
\n Explore a collection of inspirational Ramadan reflections from the QuranReflect\n Community curated to help you connect more deeply with the Quran.\n
\n
    \n
  • \n \n
  • \n
  • \n \n
  • \n
\n \n
    \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • \n
\n \n
\n
\n We hope these activities enrich your Ramadan, deepening your connection with the Quran.\n Share this list of activities with anyone who may benefit.\n
\n
\n
\n \n );\n};\n\nexport default RamadanActivitiesPage;\n","/**\n * Shorten a text by setting the maximum number of characters\n * by the value of the parameter and adding \"...\" at the end.\n *\n * @param {string} rawString\n * @param {number} length\n * @param {string} suffix\n * @returns {string}\n */\nexport const truncateString = (rawString: string, length: number, suffix = '...'): string => {\n const characters = rawString.split('', length);\n let shortenedText = '';\n for (let index = 0; index < characters.length; index += 1) {\n const character = characters[index];\n if (shortenedText.length === length - 1) {\n shortenedText = `${shortenedText}${character}${suffix}`;\n break;\n }\n shortenedText = `${shortenedText}${character}`;\n }\n return shortenedText;\n};\n\n/**\n * Strip HTML tags from a string.\n *\n * @param {string} rawString\n * @returns {string}\n */\nexport const stripHTMLTags = (rawString: string): string => rawString.replace(/(<([^>]+)>)/gi, '');\n\n/**\n * Convert a slugified collection id to collection id only after\n * removing the slug.\n *\n * @param {string} slugifiedCollectionId\n * @returns {string}\n */\nexport const slugifiedCollectionIdToCollectionId = (slugifiedCollectionId: string): string => {\n if (!slugifiedCollectionId) {\n return '';\n }\n const splits = slugifiedCollectionId.split('-');\n // if there is no slug in the url (collections with a name that cannot be slugified e.g. emoticons)\n if (splits.length === 1) {\n return splits[0];\n }\n return splits[splits.length - 1];\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Error_container__1m9XV\",\"text\":\"Error_text__yg4kD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"PageContainer_container__1TUET\",\"fullWidth\":\"PageContainer_fullWidth__RU5GM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"verseContainer\":\"EmbeddableVerseCell_verseContainer__GCj_d\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footnoteContainer\":\"FootnoteText_footnoteContainer__2GrJa\",\"text\":\"FootnoteText_text__o_c03\",\"header\":\"FootnoteText_header__M_Q2C\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"text\":\"TranslationText_text__4atf8\",\"translation-font-size-1\":\"TranslationText_translation-font-size-1__TqSPj\",\"translation-font-size-2\":\"TranslationText_translation-font-size-2__AW2i1\",\"translation-font-size-3\":\"TranslationText_translation-font-size-3__ww3t4\",\"translation-font-size-4\":\"TranslationText_translation-font-size-4__TKdKv\",\"translation-font-size-5\":\"TranslationText_translation-font-size-5__5bjGX\",\"translation-font-size-6\":\"TranslationText_translation-font-size-6__6SMJi\",\"translation-font-size-7\":\"TranslationText_translation-font-size-7__03ez5\",\"translation-font-size-8\":\"TranslationText_translation-font-size-8__IA0Tr\",\"translation-font-size-9\":\"TranslationText_translation-font-size-9__tq3IG\",\"translation-font-size-10\":\"TranslationText_translation-font-size-10__A9YEa\",\"ltr\":\"TranslationText_ltr__146rZ\",\"rtl\":\"TranslationText_rtl__ytrpw\",\"urdu\":\"TranslationText_urdu__9N37Y\",\"kurdish\":\"TranslationText_kurdish__je0yf\",\"divehi\":\"TranslationText_divehi__e3rqQ\",\"translationName\":\"TranslationText_translationName__Vm9Sj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Hero_container__MwEz4\",\"rowContainer\":\"Hero_rowContainer__txyaV\",\"row\":\"Hero_row__3_Icm\",\"header\":\"Hero_header__DT50D\",\"desc\":\"Hero_desc__gLk4u\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"ReadMoreCollapsible_container__Gd0c_\",\"body\":\"ReadMoreCollapsible_body__nK2hB\",\"title\":\"ReadMoreCollapsible_title__afl70\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"Collapsible_header__CmhJq\",\"headerLeft\":\"Collapsible_headerLeft__Xh00n\",\"prefixContainer\":\"Collapsible_prefixContainer__AVHUT\",\"prefixRotated\":\"Collapsible_prefixRotated__bjKLn\",\"suffixContainer\":\"Collapsible_suffixContainer__uZ1IW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"contentPage\":\"contentPage_contentPage__GtoGM\",\"heading\":\"contentPage_heading__COCGv\",\"italicLarge\":\"contentPage_italicLarge__JVHhO\",\"image\":\"contentPage_image__Vgw2Y\",\"list\":\"contentPage_list__yuDCq\",\"underline\":\"contentPage_underline__1hrK7\",\"subListItem\":\"contentPage_subListItem__jozHS\",\"ctaContainer\":\"contentPage_ctaContainer__WdRQb\",\"section\":\"contentPage_section__mOqj2\",\"subSection\":\"contentPage_subSection__Crmto\",\"innerSection\":\"contentPage_innerSection__K7hW3\",\"bold\":\"contentPage_bold___v0J7\",\"subHeading\":\"contentPage_subHeading__kNRWM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"RamadanActivities_container__vMBhV\",\"verseContainer\":\"RamadanActivities_verseContainer__N3B96\"};","import $73KQ4$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $73KQ4$forwardRef, createElement as $73KQ4$createElement, useCallback as $73KQ4$useCallback, useState as $73KQ4$useState, useRef as $73KQ4$useRef, useEffect as $73KQ4$useEffect} from \"react\";\nimport {composeEventHandlers as $73KQ4$composeEventHandlers} from \"@radix-ui/primitive\";\nimport {createContextScope as $73KQ4$createContextScope} from \"@radix-ui/react-context\";\nimport {useControllableState as $73KQ4$useControllableState} from \"@radix-ui/react-use-controllable-state\";\nimport {useLayoutEffect as $73KQ4$useLayoutEffect} from \"@radix-ui/react-use-layout-effect\";\nimport {useComposedRefs as $73KQ4$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {Primitive as $73KQ4$Primitive} from \"@radix-ui/react-primitive\";\nimport {Presence as $73KQ4$Presence} from \"@radix-ui/react-presence\";\nimport {useId as $73KQ4$useId} from \"@radix-ui/react-id\";\n\n\n\n\n\n\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Collapsible\n * -----------------------------------------------------------------------------------------------*/ const $409067139f391064$var$COLLAPSIBLE_NAME = 'Collapsible';\nconst [$409067139f391064$var$createCollapsibleContext, $409067139f391064$export$952b32dcbe73087a] = $73KQ4$createContextScope($409067139f391064$var$COLLAPSIBLE_NAME);\nconst [$409067139f391064$var$CollapsibleProvider, $409067139f391064$var$useCollapsibleContext] = $409067139f391064$var$createCollapsibleContext($409067139f391064$var$COLLAPSIBLE_NAME);\nconst $409067139f391064$export$6eb0f7ddcda6131f = /*#__PURE__*/ $73KQ4$forwardRef((props, forwardedRef)=>{\n const { __scopeCollapsible: __scopeCollapsible , open: openProp , defaultOpen: defaultOpen , disabled: disabled , onOpenChange: onOpenChange , ...collapsibleProps } = props;\n const [open = false, setOpen] = $73KQ4$useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /*#__PURE__*/ $73KQ4$createElement($409067139f391064$var$CollapsibleProvider, {\n scope: __scopeCollapsible,\n disabled: disabled,\n contentId: $73KQ4$useId(),\n open: open,\n onOpenToggle: $73KQ4$useCallback(()=>setOpen((prevOpen)=>!prevOpen\n )\n , [\n setOpen\n ])\n }, /*#__PURE__*/ $73KQ4$createElement($73KQ4$Primitive.div, $73KQ4$babelruntimehelpersesmextends({\n \"data-state\": $409067139f391064$var$getState(open),\n \"data-disabled\": disabled ? '' : undefined\n }, collapsibleProps, {\n ref: forwardedRef\n })));\n});\n/*#__PURE__*/ Object.assign($409067139f391064$export$6eb0f7ddcda6131f, {\n displayName: $409067139f391064$var$COLLAPSIBLE_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * CollapsibleTrigger\n * -----------------------------------------------------------------------------------------------*/ const $409067139f391064$var$TRIGGER_NAME = 'CollapsibleTrigger';\nconst $409067139f391064$export$c135dce7b15bbbdc = /*#__PURE__*/ $73KQ4$forwardRef((props, forwardedRef)=>{\n const { __scopeCollapsible: __scopeCollapsible , ...triggerProps } = props;\n const context = $409067139f391064$var$useCollapsibleContext($409067139f391064$var$TRIGGER_NAME, __scopeCollapsible);\n return /*#__PURE__*/ $73KQ4$createElement($73KQ4$Primitive.button, $73KQ4$babelruntimehelpersesmextends({\n type: \"button\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open || false,\n \"data-state\": $409067139f391064$var$getState(context.open),\n \"data-disabled\": context.disabled ? '' : undefined,\n disabled: context.disabled\n }, triggerProps, {\n ref: forwardedRef,\n onClick: $73KQ4$composeEventHandlers(props.onClick, context.onOpenToggle)\n }));\n});\n/*#__PURE__*/ Object.assign($409067139f391064$export$c135dce7b15bbbdc, {\n displayName: $409067139f391064$var$TRIGGER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * CollapsibleContent\n * -----------------------------------------------------------------------------------------------*/ const $409067139f391064$var$CONTENT_NAME = 'CollapsibleContent';\nconst $409067139f391064$export$aadde00976f34151 = /*#__PURE__*/ $73KQ4$forwardRef((props, forwardedRef)=>{\n const { forceMount: forceMount , ...contentProps } = props;\n const context = $409067139f391064$var$useCollapsibleContext($409067139f391064$var$CONTENT_NAME, props.__scopeCollapsible);\n return /*#__PURE__*/ $73KQ4$createElement($73KQ4$Presence, {\n present: forceMount || context.open\n }, ({ present: present })=>/*#__PURE__*/ $73KQ4$createElement($409067139f391064$var$CollapsibleContentImpl, $73KQ4$babelruntimehelpersesmextends({}, contentProps, {\n ref: forwardedRef,\n present: present\n }))\n );\n});\n/*#__PURE__*/ Object.assign($409067139f391064$export$aadde00976f34151, {\n displayName: $409067139f391064$var$CONTENT_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $409067139f391064$var$CollapsibleContentImpl = /*#__PURE__*/ $73KQ4$forwardRef((props, forwardedRef)=>{\n const { __scopeCollapsible: __scopeCollapsible , present: present , children: children , ...contentProps } = props;\n const context = $409067139f391064$var$useCollapsibleContext($409067139f391064$var$CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = $73KQ4$useState(present);\n const ref = $73KQ4$useRef(null);\n const composedRefs = $73KQ4$useComposedRefs(forwardedRef, ref);\n const heightRef = $73KQ4$useRef(0);\n const height = heightRef.current;\n const widthRef = $73KQ4$useRef(0);\n const width = widthRef.current; // when opening we want it to immediately open to retrieve dimensions\n // when closing we delay `present` to retrieve dimensions before closing\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = $73KQ4$useRef(isOpen);\n const originalStylesRef = $73KQ4$useRef();\n $73KQ4$useEffect(()=>{\n const rAF = requestAnimationFrame(()=>isMountAnimationPreventedRef.current = false\n );\n return ()=>cancelAnimationFrame(rAF)\n ;\n }, []);\n $73KQ4$useLayoutEffect(()=>{\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName\n }; // block any animations/transitions so the element renders at its full dimensions\n node.style.transitionDuration = '0s';\n node.style.animationName = 'none'; // get width and height from full dimensions\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width; // kick off any animations/transitions that were originally set up if it isn't the initial mount\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n node.style.animationName = originalStylesRef.current.animationName;\n }\n setIsPresent(present);\n }\n /**\n * depends on `context.open` because it will change to `false`\n * when a close is triggered but `present` will be `false` on\n * animation end (so when close finishes). This allows us to\n * retrieve the dimensions *before* closing.\n */ }, [\n context.open,\n present\n ]);\n return /*#__PURE__*/ $73KQ4$createElement($73KQ4$Primitive.div, $73KQ4$babelruntimehelpersesmextends({\n \"data-state\": $409067139f391064$var$getState(context.open),\n \"data-disabled\": context.disabled ? '' : undefined,\n id: context.contentId,\n hidden: !isOpen\n }, contentProps, {\n ref: composedRefs,\n style: {\n [`--radix-collapsible-content-height`]: height ? `${height}px` : undefined,\n [`--radix-collapsible-content-width`]: width ? `${width}px` : undefined,\n ...props.style\n }\n }), isOpen && children);\n});\n/* -----------------------------------------------------------------------------------------------*/ function $409067139f391064$var$getState(open) {\n return open ? 'open' : 'closed';\n}\nconst $409067139f391064$export$be92b6f5f03c0fe9 = $409067139f391064$export$6eb0f7ddcda6131f;\nconst $409067139f391064$export$41fb9f06171c75f4 = $409067139f391064$export$c135dce7b15bbbdc;\nconst $409067139f391064$export$7c6e2c02157bb7d2 = $409067139f391064$export$aadde00976f34151;\n\n\n\n\nexport {$409067139f391064$export$952b32dcbe73087a as createCollapsibleScope, $409067139f391064$export$6eb0f7ddcda6131f as Collapsible, $409067139f391064$export$c135dce7b15bbbdc as CollapsibleTrigger, $409067139f391064$export$aadde00976f34151 as CollapsibleContent, $409067139f391064$export$be92b6f5f03c0fe9 as Root, $409067139f391064$export$41fb9f06171c75f4 as Trigger, $409067139f391064$export$7c6e2c02157bb7d2 as Content};\n//# sourceMappingURL=index.mjs.map\n"],"names":["_path","_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","props","width","height","viewBox","fill","xmlns","d","fillRule","clipRule","window","__NEXT_P","push","DataFetcher","queryKey","render","renderError","initialData","loading","Spinner","dataFetcher","fetcher","showSpinnerOnRevalidate","onFetchSuccess","useSWRImmutable","then","res","Promise","resolve","catch","err","reject","fallbackData","data","error","isValidating","mutate","errorComponent","Error","onRetryClicked","memo","useTranslation","div","className","styles","p","message","OFFLINE_ERROR","Button","prefix","RetryIcon","size","ButtonSize","type","ButtonType","onClick","url","image","imageAlt","imageHeight","imageWidth","openGraph","description","rest","openGraphParams","images","alt","params","truncateString","NextSeo","children","chapterId","verseNumber","fontScale","quranReaderStyles","useSelector","selectQuranReaderStyles","shallowEqual","quranFont","mushafLines","getMushafId","mushaf","selectedTranslations","selectSelectedTranslations","areArraysEqual","lang","apiParams","words","perPage","translations","join","page","getDefaultWordFields","makeVersesUrl","toString","firstVerse","verses","VerseTextPreview","map","translation","TranslationText","translationFontScale","text","languageId","resourceName","id","footnoteName","footnote","onCloseClicked","onTextClicked","isLoading","findLanguageIdByLocale","landData","getLanguageDataById","variant","ButtonVariant","shape","ButtonShape","CloseIcon","classNames","transStyles","direction","font","dangerouslySetInnerHTML","__html","useState","setIsLoading","showFootnote","setShowFootnote","setFootnote","activeFootnoteName","setActiveFootnoteName","activeSubFootnoteName","setActiveSubFootnoteName","subFootnote","setSubFootnote","PRE_DEFINED_FOOTNOTES","sg","pl","dl","resetFootnote","resetSubFootnote","event","isSubFootnote","target","tagName","footnoteText","innerText","trim","subFootnoteId","logButtonClick","footNoteId","getAttribute","Number","getFootnote","status","footNote","finally","langData","shouldShowFootnote","FootnoteText","undefined","tafsirVerses","useMemo","values","verse","pageNumber","useQcfFont","getVerseWords","flat","PlainVerseText","CollapsibleDirection","isDefaultOpen","title","suffix","shouldRotatePrefixOnToggle","shouldOpen","onOpenChange","Left","isOpen","setIsOpen","useEffect","CollapsiblePrimitive","open","asChild","preValue","preventDefault","stopPropagation","currentlyFetchingFonts","useRef","dispatch","useDispatch","isFontQCF","isQCFFont","loadedFonts","selectLoadedFontFaces","onFontLoaded","useCallback","fontFace","addLoadedFontFace","getPagesByVerses","forEach","isV1","QuranFont","fontFaceName","getFontFaceNameForPage","FontFace","getV1OrV2FontFaceSource","current","includes","display","document","fonts","add","load","removeItemFromArray","href","Link","isNewTab","dir","b","br","Section","TitleType","section","titleType","LEARN_MORE","Collapsible","isCollapseOpen","logEvent","onCollapseOpenChange","span","ChevronDownIcon","PATH","getRamadanActivitiesNavigationUrl","onButtonClicked","NextSeoWrapper","getCanonicalUrl","languageAlternates","getLanguageAlternates","RamadanActivityHero","PageContainer","pageStyles","EmbeddableVerseCell","h1","ReadMoreCollapsible","MINDFUL_FASTING","InlineLink","AYAH_LOOKUP_CHALLENGE","MAS_QUIZ","LEARNING_PLANS","ul","li","getLoginNavigationUrl","MONTH_STREAK","getReadingGoalNavigationUrl","INVITE_PEOPLE","CRISIS","INSPIRING_READING","SHOW_MORE","rawString","characters","split","shortenedText","index","character","stripHTMLTags","replace","slugifiedCollectionIdToCollectionId","slugifiedCollectionId","splits","module","exports","$409067139f391064$var$COLLAPSIBLE_NAME","$409067139f391064$var$createCollapsibleContext","$409067139f391064$export$952b32dcbe73087a","$409067139f391064$var$CollapsibleProvider","$409067139f391064$var$useCollapsibleContext","$409067139f391064$export$6eb0f7ddcda6131f","forwardedRef","__scopeCollapsible","openProp","defaultOpen","disabled","collapsibleProps","setOpen","prop","defaultProp","onChange","scope","contentId","onOpenToggle","prevOpen","$409067139f391064$var$getState","ref","$409067139f391064$var$TRIGGER_NAME","$409067139f391064$export$c135dce7b15bbbdc","triggerProps","context","$409067139f391064$var$CONTENT_NAME","$409067139f391064$export$aadde00976f34151","forceMount","contentProps","present","$409067139f391064$var$CollapsibleContentImpl","isPresent","setIsPresent","composedRefs","heightRef","widthRef","isMountAnimationPreventedRef","originalStylesRef","rAF","requestAnimationFrame","cancelAnimationFrame","node","transitionDuration","style","animationName","rect","getBoundingClientRect","hidden","$409067139f391064$export$be92b6f5f03c0fe9","$409067139f391064$export$41fb9f06171c75f4"],"sourceRoot":""}