@contentful/f36-modal 4.6.0 → 4.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/dist/main.js +90 -112
- package/dist/main.js.map +1 -1
- package/dist/module.js +84 -99
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +22 -7
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -6
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SKGgBuF,yCAAT,GAAgC,CAAvC;IACE,MAAA,CAAO,CAAP;QACEb,IAAI,EAAA,EAAE,AAAF,SAAE,AAAF,EAAE,CAAA,kBAAA,CAAI,CAAVA;YACEtC,QAAQ,EAAE,CADF;YAERyD,OAAO,KAAKD,oDAAM,CAACE,QAAS,CAAA,CAAA,EAAGF,oDAAM,CAACE,QAAS,CAAA,CAAA,EAAGF,oDAAM,CAACE,QAAS,CAAA,CAAA,EAAGF,oDAAM,CAACG,QAAS;YACrFC,YAAY,KAAKJ,oDAAM,CAACK,kBAAmB,CAAA,CAAA,EAAGL,oDAAM,CAACK,kBAAmB,CAAA,IAAA;YACxEC,YAAY,GAAG,UAAA,EAAYN,oDAAM,CAACO,OAAQ;QAJlC,CAAJ;QAMNR,eAAe,EAAA,EAAE,AAAF,SAAE,AAAF,EAAE,CAAA,kBAAA,CAAI,CAArBA;YACEvD,QAAQ,EAAE,CADS;YAEnB2C,KAAK,EAAEa,oDAAM,CAACQ,UAFK;YAGnBC,MAAM,EAAET,oDAAM,CAACG,QAHI;YAInBO,MAAM,EAAE,CAARA;gBACElE,QAAQ,EAAE,CADJ;gBAENoC,GAAG,GAAG,UAAA,EAAYoB,oDAAM,CAACW,UAAW,CAAA,CAAA;gBACpCC,KAAK,EAAE,CAAPA;YAHM,CAAA;QAJW,CAAJ;IAPZ,CAAP;AAkBD,CAAA;;;SDFehG,yCAAT,CAAqB,CAA5B,UACEsB,OAD0B,UAE1BQ,KAF0B,WAG1BoB,MAAM,GAAG,CAHiB,iCAI1BO,SAJ0B,MAKvBN,UAAH,CACClD,CANI,EAMkC,CANb;IAO1B,KAAA,CAAMuD,MAAM,GAAGuB,yCAAoB;IAEnC,MAAA,oEACG,6BAAD;WACM5B,UAAJ;QACA,SAAA,EAAW,iBAAA,CAAGK,MAAM,CAACU,IAAV,EAAgBT,SAAhB;QACX,MAAA,EAAQP,MAAD;QACP,UAAA,EAAW,CAJb;QAKE,cAAA,EAAe,CALjB;0EAOG,yCAAD;QAAY,EAAA,EAAG,CAAf;QAAoB,WAApB,EAAoB,IAApB;QAAgC,YAAA,EAAa,CAA7C;OACGpB,KAAD,GAEDR,OAAO,uEACL,6BAAD;QAAM,UAAA,EAAW,CAAjB;QAA0B,SAAA,EAAWkC,MAAM,CAAC2B,eAAR;0EACjC,iCAAD;QACE,OAAA,EAAQ,CADV;QAEE,CAAA,aAAW,CAFb;QAGE,SAAA,qEAAY,mCAAD;YAAW,IAAA,EAAK,CAAhB;;QACX,OAAA,MAAe,CAJ3B;YAKc7D,OAAO;QACR,CAFO;QAGR,IAAA,EAAK,CAPP;;AAaT,CAAA;AAEDtB,yCAAW,CAACyE,WAAZ,GAA0B,CAA1B;;;;;;;;SGtDgBwB,yCAAT,GAAiC,CAAxC;IACE,MAAA,CAAO,CAAP;QACE/B,IAAI,EAAA,EAAE,AAAF,SAAE,AAAF,EAAE,CAAA,kBAAA,CAAI,CAAVA;YACEmB,OAAO,KAAKD,oDAAM,CAACE,QAAS,CAAA,CAAA,EAAGF,oDAAM,CAACG,QAAS;YAC/CY,KAAK,EAAEf,oDAAM,CAACgB,OAFN;YAGRC,QAAQ,EAAEjB,oDAAM,CAACkB,SAHT;YAIRC,UAAU,EAAEnB,oDAAM,CAACoB,gBAJX;YAKRC,UAAU,EAAErB,oDAAM,CAACsB,WALX;YAMRC,SAAS,EAAE,CANH;YAORC,SAAS,EAAE,CAPH;YAQRC,SAAS,EAAE,CAAXA;QARQ,CAAJ;IADD,CAAP;AAYD,CAAA;;;SDDejH,yCAAT,CAAsB,CAA7B,SACEsD,MAAM,GAAG,CADkB,kCAE3BO,SAF2B,aAG3BlB,QAH2B,MAIxBY,UAAH,CACCtD,CALI,EAKe,CALO;IAM3B,KAAA,CAAM2D,MAAM,GAAGyC,yCAAqB;IACpC,MAAA,oEACG,4BAAD;WACM9C,UAAJ;QACA,EAAA,EAAG,CAFL;QAGE,SAAA,EAAW,iBAAA,CAAGK,MAAM,CAACU,IAAV,EAAgBT,SAAhB;QACX,MAAA,EAAQP,MAAD;OAENX,QAAD;AAGL,CAAA;AAED3C,yCAAY,CAAC6E,WAAb,GAA2B,CAA3B;;;;;;SE9BgB7D,yCAAT,CAAwB2C,KAAxB,EAKJ,CALmC;IAMpC,KAAA,CAAMiB,KAAK,GAAG,iBAAA,CAAA,EACZ,AADY,SACZ,AADY,EACZ,CAAA,kBAAA,CAAI,CADN;QAEIsC,MAAM,EAAE1B,oDAAM,CAACQ,UADb;QAEFmB,eAAe,EAAE3B,oDAAM,CAAC4B,UAFtB;QAGFxB,YAAY,EAAEJ,oDAAM,CAACK,kBAHnB;QAIFwB,SAAS,EAAE7B,oDAAM,CAAC8B,cAJhB;QAKFC,SAAS,GAAG,2BAAA,EAA6B/B,oDAAM,CAACgC,eAAgB,CAAA,EAAA;QAChEC,QAAQ,GAAG,2BAAA,EAA6BjC,oDAAM,CAACgC,eAAgB,CAAA,EAAA;QAC/DE,QAAQ,EAAE,CAPR;QAQFC,OAAO,EAAE,CARP;QASFC,aAAa,EAAE,CAAfA;IATE,CAAJ,GAWAjE,KAAK,CAACvB,mBAAN,GAAA,EACI,AADJ,SACI,AADJ,EACI,CAAA,kBAZA,CAAA,CAAA;QAYA,IAAA,EAAA,CAAA;QAAA,MAAA,EAAA,CAAA;IAAA,CAAA,IAIA,IAjBQ,EAkBZuB,KAAK,CAACxB,IAAN,KAAe,CAAf,OAAA,EACI,AADJ,SACI,AADJ,EACI,CAAA,kBANA,CAAA,CAAA;QAMA,IAAA,EAAA,CAAA;QAAA,MAAA,EAAA,CAAA;IAAA,CAAA,IAOA,IA1BQ,EA2BZwB,KAAK,CAACE,SA3BM;IA8Bd,MAAA,CAAO,CAAP;eACEe,KADK;QAELV,MAAM,EAAA,EAAE,AAAF,SAAE,AAAF,EAAE,CAAA,kBAARA,CAAAA,CAAAA;YAAQ,IAAA,EAAA,CAAA;YAAA,MAAA,EAAA,CAAA;QAAA,CAAA;QAGRG,IAAI,EAAE,CAANA;YACEC,IAAI,EAAE,iBAAA,CAAA,EACJ,AADI,SACJ,AADI,EACJ,CAAA,kBAAA,CAAI,CADNA;gBAEIuD,MAAM,EAAErC,oDAAM,CAACsC,kBADb;gBAEF9F,QAAQ,EAAE,CAFR;gBAGFyD,OAAO,EAAE,CAHP;gBAIFkC,OAAO,EAAE,CAJP;gBAKFT,MAAM,EAAE,CALN;gBAMFa,SAAS,EAAE,CANT;gBAOFC,OAAO,EAAE,CAPP;gBAQFC,SAAS,EAAE,CART;gBASFC,UAAU,GAAG,UAAA,EAAY1C,oDAAM,CAAC2C,yBAA0B,CAAA,CAAA,EAAG3C,oDAAM,CAAC4C,uBAAwB;YAT1F,CAAJ,GAWAzE,KAAK,CAACxB,IAAN,KAAe,CAAf,OAAA,EACI,AADJ,SACI,AADJ,EACI,CAAA,kBAZA,CAAA,CAAA;gBAYA,IAAA,EAAA,CAAA;gBAAA,MAAA,EAAA,CAAA;YAAA,CAAA,IAIA,IAjBA;YAmBNoC,SAAS,EAAA,EAAE,AAAF,SAAE,AAAF,EAAE,CAAA,kBAAXA,CAAAA,CAAAA;gBAAW,IAAA,EAAA,CAAA;gBAAA,MAAA,EAAA,CAAA;YAAA,CAAA;YAGXC,WAAW,EAAA,EAAE,AAAF,SAAE,AAAF,EAAE,CAAA,kBAAbA,CAAAA,CAAAA;gBAAa,IAAA,EAAA,CAAA;gBAAA,MAAA,EAAA,CAAA;YAAA,CAAA;QAvBT,CALD;QAgCLC,YAAY,EAAE,CAAdA;YACEH,IAAI,EAAE,iBAAA,CAAA,EACJ,AADI,SACJ,AADI,EACJ,CAAA,kBAAA,CAAI,CADNA;gBAEIqD,OAAO,EAAE,CADP;gBAEFU,UAAU,EAAE,CAFV;gBAGFC,QAAQ,EAAE,CAHR;gBAIFlE,GAAG,EAAE,CAJH;gBAKFgC,KAAK,EAAE,CALL;gBAMFmC,MAAM,EAAE,CANN;gBAOFC,IAAI,EAAE,CAPJ;gBAQFX,MAAM,EAAErC,oDAAM,CAACiD,WARb;gBASFC,OAAO,EAAE,CATP;gBAUFR,UAAU,GAAG,QAAA,EAAU1C,oDAAM,CAAC2C,yBAA0B,CAAA,CAAA,EAAG3C,oDAAM,CAAC4C,uBAAwB;gBAC1FpG,QAAQ,EAAE,CAXR;gBAYF+E,SAAS,EAAE,CAZT;gBAaFI,eAAe,EAAE,CAbf;gBAcFY,SAAS,EAAE,CAAXA;YAdE,CAAJ,GAgBApE,KAAK,CAAC3B,QAAN,KAAmB,CAAnB,UAAA,EACI,AADJ,SACI,AADJ,EACI,CAAA,kBAjBA,CAAA,CAAA;gBAiBA,IAAA,EAAA,CAAA;gBAAA,MAAA,EAAA,CAAA;YAAA,CAAA,IAIA,IAtBA;YAwBNuC,SAAS,EAAA,EAAE,AAAF,SAAE,AAAF,EAAE,CAAA,kBAAXA,CAAAA,CAAAA;gBAAW,IAAA,EAAA,CAAA;gBAAA,MAAA,EAAA,CAAA;YAAA,CAAA;YAGXC,WAAW,EAAA,EAAE,AAAF,SAAE,AAAF,EAAE,CAAA,kBAAbA,CAAAA,CAAAA;gBAAa,IAAA,EAAA,CAAA;gBAAA,MAAA,EAAA,CAAA;YAAA,CAAA;QA5BD,CAAA;IAhCT,CAAP;AAiED,CAAA;;;AL9FD,KAAA,CAAMrD,sCAAgB,GAAG,CAAzB;IACEC,MAAM,EAAE,CADe;IAEvBC,KAAK,EAAE,CAFgB;IAGvBC,KAAK,EAAE,CAHgB;IAIvBC,SAAS,EAAE,CAJY;IAKvBC,GAAG,EAAE,CAALA;AALuB,CAAzB;SAoFSuB,0CAAT,CAA8BC,IAA9B,EAAiD,CAAjD;IACE,EAAA,EAAIA,IAAI,IAAIA,IAAI,CAACC,gBAAjB,EAAmC,CAAnC;QACE,KAAA,CAAMC,QAAQ,GAAGF,IAAI,CAACC,gBAAL,CAAsB,CAAtB;QACjB,EAAA,EAAIC,QAAQ,CAACC,MAAT,GAAkB,CAAtB,EAAyB,CAAzB;YACE,KAAA,CAAMC,YAAY,GAAGF,QAAQ,CAAC,CAAD,EAC7B,CADA,AACA,EADA,AACA,wCADA;YAEA,EAAA,EAAI,MAAA,CAAOE,YAAY,CAACC,KAApB,KAA8B,CAAlC,WACE,EAAA,AAAA,wCAAA;YACAD,YAAY,CAACC,KAAb;QAEH,CAAA;IACF,CAAA;AACF,CAAA;SAEezD,yCAAT,CAAe,CAAtB,sBACEwC,mBAAmB,GAAG,KADF,aAEpBJ,QAAQ,GAAG,CAFS,oCAGpBD,wBAAwB,GAAG,IAHP,8BAIpBD,yBAAyB,GAAG,IAJR,SAKpBK,IAAI,GAAG,CALa,kBAMpBmB,MAAM,GAAG,CANW,0BAOpBrB,SAAS,GAAG,CAPQ,cAQpBJ,IARoB,MASjB0B,UAAH,CACC1D,CAVI,EAUQ,CAVO;IAWpB,KAAA,CAAM2D,UAAU,GAAG5C,mBAAY,CAAiB,IAA7B;IAEnB,KAAA,CAAM+C,KAAK,GAAG,CAAA;WACTJ,UADS;6BAEZnB,mBAFY;kBAGZJ,QAHY;kCAIZD,wBAJY;mCAKZD,yBALY;cAMZK,IANY;gBAOZmB,MAPY;mBAQZrB,SAAAA;IARY,CAAd;IAWA,KAAA,CAAM2B,MAAM,GAAG5C,yCAAc,CAAC,CAA9B;kBACEgB,QAD4B;cAE5BG,IAF4B;6BAG5BC,mBAH4B;QAI5ByB,SAAS,EAAEN,UAAU,CAACM,SAAtBA;IAJ4B,CAAD;IAO7BjD,sBAAA,KAAsB,CAAtBA;QACE,EAAA,EAAI+C,KAAK,CAAClC,OAAV,EACEsC,UAAU,KAAO,CAAjBA;YACE,EAAA,EAAIJ,KAAK,CAACnB,eAAN,IAAyBmB,KAAK,CAACnB,eAAN,CAAsBwB,OAAnD,EACE,CAAA;gBAAA,EAAA,EAAIL,KAAK,CAACnB,eAAN,CAAsBwB,OAAtB,CAA8BX,KAAlC,EACEM,KAAK,CAACnB,eAAN,CAAsBwB,OAAtB,CAA8BX,KAA9B;YACD,CAAA,MACI,EAAA,EAAIG,UAAU,CAACQ,OAAf,EACLjB,0CAAoB,CAACS,UAAU,CAACQ,OAAZ;QAEvB,CARS,EAQP,GARO;IAUb,CAZD,EAYG,CAACL;QAAAA,KAAK,CAAClC,OAAP;QAAgBkC,KAAK,CAACnB,eAAtB;IAAA,CAZH;IAcA,KAAA,CAAMyB,aAAa,OAAS,CAA5B;QACE,MAAA,0CACG,qBAAD,QACGV,UAAU,CAACrB,KAAX,6CACE,yCAAD;YACE,KAAA,EAAOqB,UAAU,CAACrB,KAAZ;YACN,OAAA,EAASyB,KAAK,CAACjC,OAAP;eACJ6B,UAAU,CAAClB,gBAAf;qDAGH,yCAAD,EAAkBkB,UAAU,CAAChB,iBAAf,EACXgB,UAAU,CAACZ,QAAZ;IAIP,CAfD;IAiBA,MAAA,0CACG,2CAAD;QACE,WAAA,EAAa,KAAD;QACZ,IAAA,EAAMd,IAAD;QACL,cAAA,EAAgB8B,KAAK,CAACjC,OAAP;QACf,MAAA,EAAQ6B,UAAU,CAAC9B,OAAZ;QACP,WAAA,EAAakC,KAAK,CAAC/B,WAAP;QACZ,gBAAA,EAAkBG,wBAAD;QACjB,yBAAA,EAA2BD,yBAAD;QAC1B,sBARF,EAQE,IARF;QASE,2BATF,EASE,IATF;QAUE,eAAA,EAAiB8B,MAAM,CAACM,MAAR;QAChB,KAAA,EAAO,CAZX;YAaMC,OAAO,EAAE,CAATA;gBACEC,GAAG,EAAEpC,QAAQ,KAAK,CAAb,UAAwB,CAAxB,GAA4BC,SAAjCmC;YADO,CAAA;QADJ,CAAD;QAKN,SAAA,EAAW,CALJ;YAMLC,IAAI,EAAET,MAAM,CAACS,IAAP,CAAYC,IADT;YAETC,SAAS,EAAEX,MAAM,CAACS,IAAP,CAAYE,SAFd;YAGTC,WAAW,EAAEZ,MAAM,CAACS,IAAP,CAAYG,WAAzBA;QAHS,CAAD;QAKV,gBAAA,EAAkB,CALP;YAMTH,IAAI,EAAET,MAAM,CAACa,YAAP,CAAoBH,IADV;YAEhBC,SAAS,EAAEX,MAAM,CAACa,YAAP,CAAoBF,SAFf;YAGhBC,WAAW,EAAEZ,MAAM,CAACa,YAAP,CAAoBD,WAAjCA;QAHgB,CAAD;QAKjB,cAAA,EAAgB,GAAD;QACf,UAAA,GAAaE,GAAD,GAAS,CANH;YAOhBlB,UAAU,CAACQ,OAAX,GAAqBU,GAArB;QACD,CAFU;gDAIV,4BAAD;QACE,MAAA,EAAQpB,MAAD;QACP,KAAA,EAAO,CAFf;YAGUqB,KAAK,EAAExD,sCAAgB,CAACgB,IAAD,KAAUA,IAAjCwC;QADK,CAAD;QAGN,SAAA,EAAWf,MAAM,CAACgB,KAAR;QACV,CANF,kBAME,IANF;OAQG,MAAA,CAAOrB,UAAU,CAACZ,QAAlB,KAA+B,CAA/B,YACGY,UAAU,CAACZ,QAAX,CAAoBgB,KAApB,IACAM,aAAa;AAIxB,CAAA;AAEDrE,yCAAK,CAACiF,WAAN,GAAoB,CAApB;;;;;;;;SM5MgB3E,yCAAT,CAAuB,CAA9B,SACEoD,MAAM,GAAG,CADmB,mCAE5BO,SAF4B,aAG5BlB,QAH4B,MAIzBY,UAAH,CACCpD,CALI,EAKoC,CALb;IAM5B,MAAA,oEACG,6BAAD;WACMoD,UAAJ;QACA,SAAA,EAAWM,SAAD;QACV,MAAA,EAAQP,MAAD;QACP,aAAA,EAAc,CAJhB;QAKE,cAAA,EAAe,CALjB;QAME,MAAA,EAAO,CANT;QAOE,SAAA,EAAU,CAPZ;0EASG,sCAAD;QAAa,OAAA,EAAQ,CAArB;QAA8B,OAAA,EAAQ,CAAtC;OACGX,QAAD;AAIP,CAAA;AAEDzC,yCAAa,CAAC2E,WAAd,GAA4B,CAA5B;;;AP3BO,KAAA,CAAMjF,yCAAK,GAAGW,yCAAa;AAClCX,yCAAK,CAACa,OAAN,GAAgBT,yCAAhB;AACAJ,yCAAK,CAACc,MAAN,GAAeN,yCAAf;AACAR,yCAAK,CAACe,QAAN,GAAiBT,yCAAjB;;;;;;SQ4EgBJ,yCAAT,CAAsB,CAA7B,sBACEsC,mBAAmB,GAAG,KADK,gBAE3B4G,WAAW,GAAG,CAFa,wBAG3BM,YAAY,GAAG,CAHY,+CAI3B3G,QAJ2B,iBAK3BoG,YAAY,GAAG,CALY,0BAM3BM,aAAa,GAAG,CANW,8CAO3BJ,MAAM,GAAG,CAPkB,+BAQ3BC,iBAAiB,GAAG,KARO,qBAS3BC,gBAAgB,GAAG,KATQ,YAU3B1H,OAV2B,sBAW3Bc,iBAX2B,uBAY3B6G,kBAZ2B,qBAa3B/G,gBAb2B,aAc3ByG,QAd2B,cAe3BD,SAf2B,6BAgB3B9G,wBAAwB,GAAG,IAhBA,8BAiB3BD,yBAAyB,GAAG,IAjBD,SAkB3BK,IAAI,GAAG,CAlBoB,kBAmB3BmB,MAAM,GAAG,CAnBkB,8BAoB3BpB,KAAK,GAAG,CApBmB,kCAqB3BM,eAAAA,EACCzC,CAtBI,EAsBe,CAtBO;IAuB3B,KAAA,CAAMwJ,SAAS,GAAG3I,sCAAK,CAAC6C,MAAN,CAAa,IAAb;IAElB,KAAA,CAAM+F,aAAa,GAAGT,YAAY,sEAC/B,iCAAD;QACE,MAAA,EAAQM,aAAD;QACP,UAAA,EAAYH,iBAAD;QACX,SAAA,EAAWC,gBAAD;QACV,OAAA,EAASF,MAAD;QACR,IAAA,EAAK,CALP;QAME,OAAA,MAAeJ,SAAS;OAEvBE,YAAD,IAEA,IAXJ;IAaA,KAAA,CAAMU,YAAY,GAAGT,WAAW,sEAC7B,iCAAD;QACE,MAAA,EAAQM,YAAD;QACP,OAAA,EAAQ,CAFV;QAGE,OAAA,EAASR,QAAD;QACR,IAAA,EAAK,CAJP;QAKE,GAAA,EAAKtG,eAAe,IAAI+G,SAApB;OAEHP,WAAD,IAEA,IAVJ;IAYA,MAAA,oEACG,yCAAD;QACE,MAAA,EAAQ1F,MAAD;QACP,OAAA,EAAS7B,OAAD;QACR,OAAA,EAASqH,QAAD;QACR,IAAA,EAAM3G,IAAD;QACL,yBAAA,EAA2BL,yBAAD;QAC1B,wBAAA,EAA0BC,wBAAD;QACzB,mBAAA,EAAqBK,mBAAD;QACpB,eAAA,EAAiBmH,SAAD;WAET,CAAb;QACQ,MAAA,oEACG,sCAAA,CAAM,QAAP,2EACG,yCAAA,CAAM,MAAP;YAAc,KAAA,EAAOrH,KAAK,IAAI,CAAV;eAAkBG,gBAAJ;+EACjC,yCAAA,CAAM,OAAP,EAAmBE,iBAAJ,EAAwBI,QAAD,sEACrC,yCAAA,CAAM,QAAP,EAAoByG,kBAAJ,EACbK,YAAD,EACCD,aAAD;IAIP,CAXD;AAcL,CAAA;AAED1J,yCAAY,CAAC+E,WAAb,GAA2B,CAA3B;;;;;;;AC3IA,KAAA,CAAMwF,6BAAO,IAAIC,QAAD,GAAmC,CAAnD;IACE,EAAA,AAAA,kCAAA;IACA,GAAA,CAAIC,OAAO,GAAGC,QAAQ,CAACC,cAAT,CAAwBH,QAAxB;IACd,EAAA,EAAIC,OAAO,KAAK,IAAhB,EACE,MAAA,CAAOA,OAAP;IAGF,CAFC,AAED,EAFC,AAED,oBAFC;IAGDA,OAAO,GAAGC,QAAQ,CAACE,aAAT,CAAuB,CAAvB;IACVH,OAAO,CAACI,YAAR,CAAqB,CAArB,KAA2BL,QAA3B;IACAE,QAAQ,CAACI,IAAT,CAAcC,WAAd,CAA0BN,OAA1B;IACA,MAAA,CAAOA,OAAP;AACD,CAZD;AAcA,KAAA,CAAMO,mCAAa,GAAgC,GAAA,CAAIC,GAAJ;SAC1CC,8BAAT,GAAoB,CAApB;IACEF,mCAAa,CAACG,OAAd,QAA6B,CAA7BH,SAA+BZ,MAAF,kBAAUE,aAAV,UAAyBJ,KAAAA,EAAzB,CAAP,EAAyCM,QAAzC,GAAsD,CAA/C;QAC3B,KAAA,CAAMY,MAAM,GAAG,CAAA;eAAKd,aAAL;YAAoB3I,OAAO,EAAE,KAATA;QAApB,CAAf;QACAyI,MAAM,CAACgB,MAAD;QACN,KAAA,CAAM,GAAA,CAAIC,OAAJ,EAAaC,YAAD,GAAkBrH,UAAU,CAACqH,YAAD,EAAepB,KAAf;;QAC9CN,yCAAQ,CAAC2B,sBAAT,CAAgChB,6BAAO,CAACC,QAAD;QACvCQ,mCAAa,CAACQ,MAAd,CAAqBhB,QAArB;IACD,CAND;AAOD,C,AAED,CAFC,AAED,EAFC,AAED,4DAFC;SAGQiB,0BAAI,CACXC,iBADF,EAIEG,OAAiC,GAAG,CAAA;AAAA,CAJtC,EAKc,CALd;IAMEA,OAAO,GAAG,CAAVA;QAAY3B,KAAK,EAAE,GAAT;WAAiB2B,OAAH;IAAd,CAAV,CAEA,CAFU,AAEV,EAFU,AAEV,sEAFU;IAGV,KAAA,CAAMrB,QAAQ,IAAI,WAAA,EAAaqB,OAAO,CAAC5B,OAAR,IAAmB6B,IAAI,CAACC,GAAL;IAClD,KAAA,CAAMtB,OAAO,GAAGF,6BAAO,CAACC,QAAD;IAEvB,MAAA,CAAO,GAAA,CAAIa,OAAJ,EAAaW,OAAD,GAAa,CAAhC;QACE,GAAA,CAAI1B,aAAa,GAAG,CAApB;qBAAsB1I,QAAF;YAAWD,OAAO,EAAE,IAATA;QAAX,CAApB;iBAESyI,MAAT,CAAgB,CAAhB,UACExI,OADc,YAEdD,OAAAA,EACoC,CAHtC,EAG2C,CAH3B;YAIdiI,yCAAQ,CAACQ,MAAT,CAAgBsB,iBAAiB,CAAC,CAAlC9B;yBAAoChI,OAAF;yBAAWD,OAAAA;YAAX,CAAD,GAAwB8I,OAAzD;QACD,CAAA;uBAEc7I,QAAf,CAAuBqK,GAAvB,EAAgC,CAAhC;YACE3B,aAAa,GAAG,CAAA;mBACXA,aADW;gBAEd3I,OAAO,EAAE,KAATA;YAFc,CAAhB;YAIAyI,MAAM,CAACE,aAAD;YACN,KAAA,CAAM,GAAA,CAAIe,OAAJ,EAAaC,YAAD,GAChBrH,UAAU,CAACqH,YAAD,EAAeO,OAAO,CAAC3B,KAAvB;;YAEZN,yCAAQ,CAAC2B,sBAAT,CAAgCd,OAAhC;YACAA,OAAO,CAACyB,MAAR;YACAlB,mCAAa,CAACQ,MAAd,CAAqBhB,QAArB;YACAwB,OAAO,CAACC,GAAD;QACR,CAAA;QAED7B,MAAM,CAACE,aAAD;QACNU,mCAAa,CAACmB,GAAd,CAAkB3B,QAAlB,EAA4B,CAA5BQ;oBACEZ,MAD0B;2BAE1BE,aAF0B;YAG1BJ,KAAK,EAAE2B,OAAO,CAAC3B,KAAfA;QAH0B,CAA5B;IAKD,CA/BM;AAgCR,CAAA;AAEM,KAAA,CAAM1J,yCAAa,GAAG,CAA7B;UACEiL,0BAD2B;cAE3BP,8BAAAA;AAF2B,CAAtB;;","sources":["packages/components/modal/index.ts","packages/components/modal/src/index.ts","packages/components/modal/src/CompoundModal.tsx","packages/components/modal/src/Modal.tsx","packages/components/modal/src/ModalHeader/ModalHeader.tsx","packages/components/modal/src/ModalHeader/ModalHeader.styles.ts","packages/components/modal/src/ModalContent/ModalContent.tsx","packages/components/modal/src/ModalContent/ModalContent.styles.ts","packages/components/modal/src/Modal.styles.ts","packages/components/modal/src/ModalControls/ModalControls.tsx","packages/components/modal/src/ModalConfirm/ModalConfirm.tsx","packages/components/modal/src/ModalLauncher/ModalLauncher.tsx"],"sourcesContent":["export * from './src/index';\n","export { Modal } from './CompoundModal';\nexport type { ModalProps } from './Modal';\nexport { ModalConfirm } from './ModalConfirm/ModalConfirm';\nexport type { ModalConfirmProps } from './ModalConfirm/ModalConfirm';\nexport { ModalContent } from './ModalContent/ModalContent';\nexport type { ModalContentProps } from './ModalContent/ModalContent';\nexport { ModalControls } from './ModalControls/ModalControls';\nexport type { ModalControlsProps } from './ModalControls/ModalControls';\nexport { ModalHeader } from './ModalHeader/ModalHeader';\nexport type { ModalHeaderProps } from './ModalHeader/ModalHeader';\nexport { ModalLauncher } from './ModalLauncher/ModalLauncher';\n","import { Modal as OriginalModal } from './Modal';\nimport { ModalContent } from './ModalContent/ModalContent';\nimport { ModalHeader } from './ModalHeader/ModalHeader';\nimport { ModalControls } from './ModalControls/ModalControls';\n\ntype CompoundModal = typeof OriginalModal & {\n Content: typeof ModalContent;\n Header: typeof ModalHeader;\n Controls: typeof ModalControls;\n};\n\nexport const Modal = OriginalModal as CompoundModal;\nModal.Content = ModalContent;\nModal.Header = ModalHeader;\nModal.Controls = ModalControls;\n","import * as React from 'react';\nimport ReactModal from 'react-modal';\n\nimport { Box } from '@contentful/f36-core';\nimport type { CommonProps } from '@contentful/f36-core';\n\nimport { ModalHeader, ModalHeaderProps } from './ModalHeader/ModalHeader';\nimport { ModalContent, ModalContentProps } from './ModalContent/ModalContent';\nimport { getModalStyles } from './Modal.styles';\nimport type { ModalSizeType, ModalPositionType } from './types';\n\nconst ModalSizesMapper = {\n medium: '520px',\n small: '400px',\n large: '700px',\n fullWidth: '100vw',\n zen: '100vw',\n};\n\nexport interface ModalProps extends CommonProps {\n /**\n * When true, the dialog is shown.\n */\n isShown: boolean;\n\n /**\n * Function that will be run when the modal is requested to be closed, prior to actually closing.\n */\n onClose: ReactModal.Props['onRequestClose'];\n\n /**\n * Function that will be run after the modal has opened.\n */\n onAfterOpen?: ReactModal.Props['onAfterOpen'];\n\n /**\n * Additional aria attributes\n */\n aria?: ReactModal.Props['aria'];\n\n /**\n * Boolean indicating if clicking the overlay should close the overlay.\n * @default true\n */\n shouldCloseOnOverlayClick?: boolean;\n /**\n * Boolean indicating if pressing the esc key should close the overlay.\n * @default true\n */\n shouldCloseOnEscapePress?: boolean;\n /**\n * Indicating if modal is centered or linked to the top\n * @default center\n */\n position?: ModalPositionType;\n /**\n * Top offset if position is 'top'\n * @default 50px\n */\n topOffset?: number | string;\n /**\n * Modal title that is used in header\n */\n title?: string;\n /**\n * Size of the modal window\n * @default medium\n */\n size?: ModalSizeType;\n /**\n * Are modals higher than viewport allowed\n * @default false\n */\n allowHeightOverflow?: boolean;\n\n /**\n * Optional props to override ModalHeader behaviour\n */\n modalHeaderProps?: Partial<ModalHeaderProps>;\n\n /**\n * Optional props to override ModalContent behaviour\n */\n modalContentProps?: Partial<ModalContentProps>;\n\n /**\n * Optional property to set initial focus\n */\n initialFocusRef?: React.RefObject<HTMLElement>;\n\n children: React.ReactNode | RenderModal;\n}\n\ntype RenderModal = (modalProps: ModalProps) => React.ReactNode;\n\nfunction focusFirstWithinNode(node: HTMLElement) {\n if (node && node.querySelectorAll) {\n const elements = node.querySelectorAll('input, button');\n if (elements.length > 0) {\n const firstElement = elements[0];\n // @ts-expect-error focus might be missing\n if (typeof firstElement.focus === 'function') {\n // @ts-expect-error focus might be missing\n firstElement.focus();\n }\n }\n }\n}\n\nexport function Modal({\n allowHeightOverflow = false,\n position = 'center',\n shouldCloseOnEscapePress = true,\n shouldCloseOnOverlayClick = true,\n size = 'medium',\n testId = 'cf-ui-modal',\n topOffset = '50px',\n aria,\n ...otherProps\n}: ModalProps) {\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n const props = {\n ...otherProps,\n allowHeightOverflow,\n position,\n shouldCloseOnEscapePress,\n shouldCloseOnOverlayClick,\n size,\n testId,\n topOffset,\n };\n\n const styles = getModalStyles({\n position,\n size,\n allowHeightOverflow,\n className: otherProps.className,\n });\n\n React.useEffect(() => {\n if (props.isShown) {\n setTimeout(() => {\n if (props.initialFocusRef && props.initialFocusRef.current) {\n if (props.initialFocusRef.current.focus) {\n props.initialFocusRef.current.focus();\n }\n } else if (contentRef.current) {\n focusFirstWithinNode(contentRef.current);\n }\n }, 100);\n }\n }, [props.isShown, props.initialFocusRef]);\n\n const renderDefault = () => {\n return (\n <React.Fragment>\n {otherProps.title && (\n <ModalHeader\n title={otherProps.title}\n onClose={props.onClose}\n {...otherProps.modalHeaderProps}\n />\n )}\n <ModalContent {...otherProps.modalContentProps}>\n {otherProps.children}\n </ModalContent>\n </React.Fragment>\n );\n };\n\n return (\n <ReactModal\n ariaHideApp={false}\n aria={aria}\n onRequestClose={props.onClose}\n isOpen={otherProps.isShown}\n onAfterOpen={props.onAfterOpen}\n shouldCloseOnEsc={shouldCloseOnEscapePress}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldFocusAfterRender\n shouldReturnFocusAfterClose\n portalClassName={styles.portal}\n style={{\n content: {\n top: position === 'center' ? 0 : topOffset,\n },\n }}\n className={{\n base: styles.base.root,\n afterOpen: styles.base.afterOpen,\n beforeClose: styles.base.beforeClose,\n }}\n overlayClassName={{\n base: styles.modalOverlay.root,\n afterOpen: styles.modalOverlay.afterOpen,\n beforeClose: styles.modalOverlay.beforeClose,\n }}\n closeTimeoutMS={200}\n contentRef={(ref) => {\n contentRef.current = ref;\n }}\n >\n <Box\n testId={testId}\n style={{\n width: ModalSizesMapper[size] || size,\n }}\n className={styles.modal}\n data-modal-root\n >\n {typeof otherProps.children === 'function'\n ? otherProps.children(props)\n : renderDefault()}\n </Box>\n </ReactModal>\n );\n}\n\nModal.displayName = 'Modal';\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { CloseIcon } from '@contentful/f36-icons';\nimport { Flex } from '@contentful/f36-core';\nimport type { PropsWithHTMLElement, CommonProps } from '@contentful/f36-core';\nimport { Button } from '@contentful/f36-button';\nimport { Subheading } from '@contentful/f36-typography';\n\nimport { getModalHeaderStyles } from './ModalHeader.styles';\n\ninterface ModalHeaderInternalProps extends CommonProps {\n title: string;\n onClose?: Function;\n}\n\nexport type ModalHeaderProps = PropsWithHTMLElement<\n ModalHeaderInternalProps,\n 'div'\n>;\n\nexport function ModalHeader({\n onClose,\n title,\n testId = 'cf-ui-modal-header',\n className,\n ...otherProps\n}: ModalHeaderProps): React.ReactElement {\n const styles = getModalHeaderStyles();\n\n return (\n <Flex\n {...otherProps}\n className={cx(styles.root, className)}\n testId={testId}\n alignItems=\"center\"\n justifyContent=\"space-between\"\n >\n <Subheading as=\"h1\" isTruncated marginBottom=\"none\">\n {title}\n </Subheading>\n {onClose && (\n <Flex alignItems=\"center\" className={styles.buttonContainer}>\n <Button\n variant=\"transparent\"\n aria-label=\"Close\"\n startIcon={<CloseIcon size=\"small\" />}\n onClick={() => {\n onClose();\n }}\n size=\"small\"\n />\n </Flex>\n )}\n </Flex>\n );\n}\n\nModalHeader.displayName = 'ModalHeader';\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\n\nexport function getModalHeaderStyles() {\n return {\n root: css({\n position: 'relative',\n padding: `${tokens.spacingM} ${tokens.spacingM} ${tokens.spacingM} ${tokens.spacingL}`,\n borderRadius: `${tokens.borderRadiusMedium} ${tokens.borderRadiusMedium} 0 0`,\n borderBottom: `1px solid ${tokens.gray300}`,\n }),\n buttonContainer: css({\n position: 'relative',\n width: tokens.spacing2Xl,\n height: tokens.spacingL,\n button: {\n position: 'absolute',\n top: `calc(-1 * ${tokens.spacing2Xs})`,\n right: 0,\n },\n }),\n };\n}\n","import React from 'react';\nimport { cx } from 'emotion';\nimport type { PropsWithHTMLElement, CommonProps } from '@contentful/f36-core';\nimport { Box } from '@contentful/f36-core';\nimport { getModalContentStyles } from './ModalContent.styles';\n\ninterface ModalContentInternalProps extends CommonProps {\n children: React.ReactNode;\n}\n\nexport type ModalContentProps = PropsWithHTMLElement<\n ModalContentInternalProps,\n 'div'\n>;\n\nexport function ModalContent({\n testId = 'cf-ui-modal-content',\n className,\n children,\n ...otherProps\n}: ModalContentProps) {\n const styles = getModalContentStyles();\n return (\n <Box\n {...otherProps}\n as=\"div\"\n className={cx(styles.root, className)}\n testId={testId}\n >\n {children}\n </Box>\n );\n}\n\nModalContent.displayName = 'ModalContent';\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport function getModalContentStyles() {\n return {\n root: css({\n padding: `${tokens.spacingM} ${tokens.spacingL}`,\n color: tokens.gray700,\n fontSize: tokens.fontSizeM,\n fontFamily: tokens.fontStackPrimary,\n lineHeight: tokens.lineHeightM,\n overflowY: 'auto',\n overflowX: 'auto',\n boxSizing: 'border-box',\n }),\n };\n}\n","import tokens from '@contentful/f36-tokens';\nimport { css, cx } from 'emotion';\nimport type { ModalPositionType, ModalSizeType } from './types';\n\nexport function getModalStyles(props: {\n size: ModalSizeType;\n position: ModalPositionType;\n allowHeightOverflow?: boolean;\n className?: string;\n}) {\n const modal = cx(\n css({\n margin: tokens.spacing2Xl,\n backgroundColor: tokens.colorWhite,\n borderRadius: tokens.borderRadiusMedium,\n boxShadow: tokens.boxShadowHeavy,\n maxHeight: `calc(100vh - 1rem * (100 / ${tokens.fontBaseDefault}))`,\n maxWidth: `calc(100vw - 1rem * (100 / ${tokens.fontBaseDefault}))`,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n }),\n props.allowHeightOverflow\n ? css({\n overflow: 'auto',\n maxHeight: 'none',\n })\n : null,\n props.size === 'zen'\n ? css({\n maxWidth: 'none',\n maxHeight: 'none',\n margin: 0,\n height: '100%',\n width: '100%',\n })\n : null,\n props.className,\n );\n\n return {\n modal,\n portal: css({\n display: 'block',\n }),\n base: {\n root: cx(\n css({\n zIndex: tokens.zIndexModalContent,\n position: 'relative',\n padding: 0,\n display: 'inline-block',\n margin: '0 auto',\n textAlign: 'left',\n outline: 'none',\n transform: 'scale(0.85)',\n transition: `transform ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n }),\n props.size === 'zen'\n ? css({\n width: '100%',\n height: '100%',\n })\n : null,\n ),\n afterOpen: css({\n transform: 'scale(1)',\n }),\n beforeClose: css({\n transform: 'scale(0.85)',\n }),\n },\n modalOverlay: {\n root: cx(\n css({\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: tokens.zIndexModal,\n opacity: 0,\n transition: `opacity ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n position: 'fixed',\n overflowY: 'auto',\n backgroundColor: 'rgba(12, 20, 28, 0.74902)',\n textAlign: 'center',\n }),\n props.position === 'center'\n ? css({\n alignItems: 'center',\n justifyContent: 'center',\n })\n : null,\n ),\n afterOpen: css({\n opacity: 1,\n }),\n beforeClose: css({\n opacity: 0,\n }),\n },\n };\n}\n","import React from 'react';\n\nimport type { PropsWithHTMLElement, CommonProps } from '@contentful/f36-core';\nimport { Flex } from '@contentful/f36-core';\nimport { ButtonGroup } from '@contentful/f36-button';\n\ninterface ModalControlsInternalProps extends CommonProps {\n children: React.ReactElement[] | React.ReactElement;\n}\n\nexport type ModalControlsProps = PropsWithHTMLElement<\n ModalControlsInternalProps,\n 'div'\n>;\n\nexport function ModalControls({\n testId = 'cf-ui-modal-controls',\n className,\n children,\n ...otherProps\n}: ModalControlsProps): React.ReactElement {\n return (\n <Flex\n {...otherProps}\n className={className}\n testId={testId}\n flexDirection=\"row\"\n justifyContent=\"flex-end\"\n margin=\"spacingL\"\n marginTop=\"none\"\n >\n <ButtonGroup variant=\"spaced\" spacing=\"spacingS\">\n {children}\n </ButtonGroup>\n </Flex>\n );\n}\n\nModalControls.displayName = 'ModalControls';\n","import React from 'react';\n\nimport { Modal } from '../CompoundModal';\nimport { ModalProps } from '../Modal';\nimport type { ModalSizeType } from '../types';\nimport type { ModalHeaderProps } from '../ModalHeader/ModalHeader';\nimport type { ModalContentProps } from '../ModalContent/ModalContent';\nimport type { ModalControlsProps } from '../ModalControls/ModalControls';\nimport { Button } from '@contentful/f36-button';\n\nexport interface ModalConfirmProps {\n /**\n * When true, the dialog is shown.\n */\n isShown: boolean;\n /**\n * Function that will be called when the confirm button is clicked. This does not close the ModalConfirm.\n */\n onConfirm(): void;\n /**\n * Function that will be called when the cancel button is clicked. This does not close the ModalConfirm.\n */\n onCancel: ModalProps['onClose'];\n /**\n Modal title that is used in header\n */\n title?: string;\n /**\n * Label of the confirm button\n */\n confirmLabel?: string | false;\n /**\n * Label of the cancel button\n */\n cancelLabel?: string | false;\n /**\n * The intent of the ModalConfirm. Used for the Button.\n */\n intent?: 'primary' | 'positive' | 'negative';\n /**\n Size of the modal window\n */\n size?: ModalSizeType;\n /**\n * Boolean indicating if clicking the overlay should close the overlay.\n */\n shouldCloseOnOverlayClick?: boolean;\n /**\n * Boolean indicating if pressing the esc key should close the overlay.\n */\n shouldCloseOnEscapePress?: boolean;\n /**\n * When true, the confirm button is set to disabled.\n */\n isConfirmDisabled?: boolean;\n /**\n * When true, the confirm button is set to loading.\n */\n isConfirmLoading?: boolean;\n /**\n * Are modals higher than viewport allowed\n */\n allowHeightOverflow?: boolean;\n\n /**\n * Optional props to override ModalHeader behaviour\n */\n modalHeaderProps?: Partial<ModalHeaderProps>;\n\n /**\n * Optional props to override ModalContent behaviour\n */\n modalContentProps?: Partial<ModalContentProps>;\n\n /**\n * Optional props to override ModalControl behaviour\n */\n modalControlsProps?: Partial<ModalControlsProps>;\n\n /**\n * Optional property to set initial focus\n */\n initialFocusRef?: React.RefObject<HTMLElement>;\n\n testId?: string;\n confirmTestId?: string;\n cancelTestId?: string;\n children: React.ReactNode;\n}\n\nexport function ModalConfirm({\n allowHeightOverflow = false,\n cancelLabel = 'Cancel',\n cancelTestId = 'cf-ui-modal-confirm-cancel-button',\n children,\n confirmLabel = 'Confirm',\n confirmTestId = 'cf-ui-modal-confirm-confirm-button',\n intent = 'positive',\n isConfirmDisabled = false,\n isConfirmLoading = false,\n isShown,\n modalContentProps,\n modalControlsProps,\n modalHeaderProps,\n onCancel,\n onConfirm,\n shouldCloseOnEscapePress = true,\n shouldCloseOnOverlayClick = true,\n size = 'medium',\n testId = 'cf-ui-modal-confirm',\n title = 'Are you sure?',\n initialFocusRef,\n}: ModalConfirmProps) {\n const cancelRef = React.useRef(null);\n\n const confirmButton = confirmLabel ? (\n <Button\n testId={confirmTestId}\n isDisabled={isConfirmDisabled}\n isLoading={isConfirmLoading}\n variant={intent}\n size=\"small\"\n onClick={() => onConfirm()}\n >\n {confirmLabel}\n </Button>\n ) : null;\n\n const cancelButton = cancelLabel ? (\n <Button\n testId={cancelTestId}\n variant=\"secondary\"\n onClick={onCancel}\n size=\"small\"\n ref={initialFocusRef || cancelRef}\n >\n {cancelLabel}\n </Button>\n ) : null;\n\n return (\n <Modal\n testId={testId}\n isShown={isShown}\n onClose={onCancel}\n size={size}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEscapePress={shouldCloseOnEscapePress}\n allowHeightOverflow={allowHeightOverflow}\n initialFocusRef={cancelRef}\n >\n {() => {\n return (\n <React.Fragment>\n <Modal.Header title={title || ''} {...modalHeaderProps} />\n <Modal.Content {...modalContentProps}>{children}</Modal.Content>\n <Modal.Controls {...modalControlsProps}>\n {cancelButton}\n {confirmButton}\n </Modal.Controls>\n </React.Fragment>\n );\n }}\n </Modal>\n );\n}\n\nModalConfirm.displayName = 'ModalConfirm';\n","/* global Promise */\nimport ReactDOM from 'react-dom';\n\n// @todo: change any to unknown\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface ModalLauncherComponentRendererProps<T = any> {\n isShown: boolean;\n onClose: (result?: T) => void;\n}\n\ninterface ModalLauncherOpenOptions {\n /**\n * Unique id to be used as identifier for the modal contianer\n */\n modalId?: string;\n /**\n * ms before removing the component from the tree\n * @default 300\n */\n delay?: number;\n}\n\ninterface CloseModalData {\n delay: number;\n render: (args: ModalLauncherComponentRendererProps<any>) => void;\n currentConfig: ModalLauncherComponentRendererProps<any>;\n}\n\nconst getRoot = (rootElId: string): HTMLElement => {\n // Reuse the container if we find it\n let rootDom = document.getElementById(rootElId);\n if (rootDom !== null) {\n return rootDom;\n }\n\n // Otherwise create it\n rootDom = document.createElement('div');\n rootDom.setAttribute('id', rootElId);\n document.body.appendChild(rootDom);\n return rootDom;\n};\n\nconst openModalsIds: Map<string, CloseModalData> = new Map();\nfunction closeAll() {\n openModalsIds.forEach(async ({ render, currentConfig, delay }, rootElId) => {\n const config = { ...currentConfig, isShown: false };\n render(config);\n await new Promise((resolveDelay) => setTimeout(resolveDelay, delay));\n ReactDOM.unmountComponentAtNode(getRoot(rootElId));\n openModalsIds.delete(rootElId);\n });\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction open<T = any>(\n componentRenderer: (\n props: ModalLauncherComponentRendererProps<T>,\n ) => JSX.Element,\n options: ModalLauncherOpenOptions = {},\n): Promise<T> {\n options = { delay: 300, ...options };\n\n // Allow components to specify if they wish to reuse the modal container\n const rootElId = `modals-root${options.modalId || Date.now()}`;\n const rootDom = getRoot(rootElId);\n\n return new Promise((resolve) => {\n let currentConfig = { onClose, isShown: true };\n\n function render({\n onClose,\n isShown,\n }: ModalLauncherComponentRendererProps<T>) {\n ReactDOM.render(componentRenderer({ onClose, isShown }), rootDom);\n }\n\n async function onClose(arg?: T) {\n currentConfig = {\n ...currentConfig,\n isShown: false,\n };\n render(currentConfig);\n await new Promise((resolveDelay) =>\n setTimeout(resolveDelay, options.delay),\n );\n ReactDOM.unmountComponentAtNode(rootDom);\n rootDom.remove();\n openModalsIds.delete(rootElId);\n resolve(arg);\n }\n\n render(currentConfig);\n openModalsIds.set(rootElId, {\n render,\n currentConfig,\n delay: options.delay,\n });\n });\n}\n\nexport const ModalLauncher = {\n open,\n closeAll,\n};\n"],"names":["Modal","ModalProps","ModalConfirm","ModalConfirmProps","ModalContent","ModalContentProps","ModalControls","ModalControlsProps","ModalHeader","ModalHeaderProps","ModalLauncher","OriginalModal","CompoundModal","Content","Header","Controls","React","ReactModal","Box","CommonProps","getModalStyles","ModalSizeType","ModalPositionType","ModalSizesMapper","medium","small","large","fullWidth","zen","isShown","onClose","Props","onAfterOpen","aria","shouldCloseOnOverlayClick","shouldCloseOnEscapePress","position","topOffset","title","size","allowHeightOverflow","modalHeaderProps","Partial","modalContentProps","initialFocusRef","RefObject","HTMLElement","children","ReactNode","RenderModal","modalProps","focusFirstWithinNode","node","querySelectorAll","elements","length","firstElement","focus","testId","otherProps","contentRef","useRef","HTMLDivElement","props","styles","className","useEffect","setTimeout","current","renderDefault","portal","content","top","base","root","afterOpen","beforeClose","modalOverlay","ref","width","modal","displayName","CloseIcon","Flex","PropsWithHTMLElement","Button","Subheading","getModalHeaderStyles","ModalHeaderInternalProps","Function","ReactElement","buttonContainer","tokens","padding","spacingM","spacingL","borderRadius","borderRadiusMedium","borderBottom","gray300","spacing2Xl","height","button","spacing2Xs","right","getModalContentStyles","ModalContentInternalProps","color","gray700","fontSize","fontSizeM","fontFamily","fontStackPrimary","lineHeight","lineHeightM","overflowY","overflowX","boxSizing","margin","backgroundColor","colorWhite","boxShadow","boxShadowHeavy","maxHeight","fontBaseDefault","maxWidth","overflow","display","flexDirection","zIndex","zIndexModalContent","textAlign","outline","transform","transition","transitionDurationDefault","transitionEasingDefault","alignItems","flexWrap","bottom","left","zIndexModal","opacity","ButtonGroup","ModalControlsInternalProps","onConfirm","onCancel","confirmLabel","cancelLabel","intent","isConfirmDisabled","isConfirmLoading","modalControlsProps","confirmTestId","cancelTestId","cancelRef","confirmButton","cancelButton","ReactDOM","ModalLauncherComponentRendererProps","result","T","ModalLauncherOpenOptions","modalId","delay","CloseModalData","render","args","currentConfig","getRoot","rootElId","rootDom","document","getElementById","createElement","setAttribute","body","appendChild","openModalsIds","Map","closeAll","forEach","config","Promise","resolveDelay","unmountComponentAtNode","delete","open","componentRenderer","JSX","Element","options","Date","now","resolve","arg","remove","set"],"version":3,"file":"main.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/components/modal/src/index.ts","packages/components/modal/src/CompoundModal.tsx","packages/components/modal/src/Modal.tsx","packages/components/modal/src/ModalHeader/ModalHeader.tsx","packages/components/modal/src/ModalHeader/ModalHeader.styles.ts","packages/components/modal/src/ModalContent/ModalContent.tsx","packages/components/modal/src/ModalContent/ModalContent.styles.ts","packages/components/modal/src/Modal.styles.ts","packages/components/modal/src/ModalControls/ModalControls.tsx","packages/components/modal/src/ModalConfirm/ModalConfirm.tsx","packages/components/modal/src/ModalLauncher/ModalLauncher.tsx"],"sourcesContent":["export { Modal } from './CompoundModal';\nexport type { ModalProps } from './Modal';\nexport { ModalConfirm } from './ModalConfirm/ModalConfirm';\nexport type { ModalConfirmProps } from './ModalConfirm/ModalConfirm';\nexport { ModalContent } from './ModalContent/ModalContent';\nexport type { ModalContentProps } from './ModalContent/ModalContent';\nexport { ModalControls } from './ModalControls/ModalControls';\nexport type { ModalControlsProps } from './ModalControls/ModalControls';\nexport { ModalHeader } from './ModalHeader/ModalHeader';\nexport type { ModalHeaderProps } from './ModalHeader/ModalHeader';\nexport { ModalLauncher } from './ModalLauncher/ModalLauncher';\n","import { Modal as OriginalModal } from './Modal';\nimport { ModalContent } from './ModalContent/ModalContent';\nimport { ModalHeader } from './ModalHeader/ModalHeader';\nimport { ModalControls } from './ModalControls/ModalControls';\n\ntype CompoundModal = typeof OriginalModal & {\n Content: typeof ModalContent;\n Header: typeof ModalHeader;\n Controls: typeof ModalControls;\n};\n\nexport const Modal = OriginalModal as CompoundModal;\nModal.Content = ModalContent;\nModal.Header = ModalHeader;\nModal.Controls = ModalControls;\n","import * as React from 'react';\nimport ReactModal from 'react-modal';\n\nimport { Box } from '@contentful/f36-core';\nimport type { CommonProps, ExpandProps } from '@contentful/f36-core';\n\nimport { ModalHeader, ModalHeaderProps } from './ModalHeader/ModalHeader';\nimport { ModalContent, ModalContentProps } from './ModalContent/ModalContent';\nimport { getModalStyles } from './Modal.styles';\nimport type { ModalSizeType, ModalPositionType } from './types';\n\nconst ModalSizesMapper: { [key in ModalSizeType]: string } = {\n medium: '520px',\n small: '400px',\n large: '700px',\n fullWidth: '100vw',\n zen: '100vw',\n};\n\nexport interface ModalProps extends CommonProps {\n /**\n * When true, the dialog is shown.\n */\n isShown: boolean;\n\n /**\n * Function that will be run when the modal is requested to be closed, prior to actually closing.\n */\n onClose: ReactModal.Props['onRequestClose'];\n\n /**\n * Function that will be run after the modal has opened.\n */\n onAfterOpen?: ReactModal.Props['onAfterOpen'];\n\n /**\n * Additional aria attributes\n */\n aria?: ReactModal.Props['aria'];\n\n /**\n * Boolean indicating if clicking the overlay should close the overlay.\n * @default true\n */\n shouldCloseOnOverlayClick?: boolean;\n /**\n * Boolean indicating if pressing the esc key should close the overlay.\n * @default true\n */\n shouldCloseOnEscapePress?: boolean;\n /**\n * Indicating if modal is centered or linked to the top\n * @default center\n */\n position?: ModalPositionType;\n /**\n * Top offset if position is 'top'\n * @default 50px\n */\n topOffset?: number | string;\n /**\n * Modal title that is used in header\n */\n title?: string;\n /**\n * Size of the modal window\n * @default medium\n */\n size?: ModalSizeType | string | number;\n /**\n * Are modals higher than viewport allowed\n * @default false\n */\n allowHeightOverflow?: boolean;\n\n /**\n * Optional props to override ModalHeader behaviour\n */\n modalHeaderProps?: Partial<ModalHeaderProps>;\n\n /**\n * Optional props to override ModalContent behaviour\n */\n modalContentProps?: Partial<ModalContentProps>;\n\n /**\n * Optional property to set initial focus\n */\n initialFocusRef?: React.RefObject<HTMLElement>;\n\n children: React.ReactNode | RenderModal;\n}\n\ntype RenderModal = (modalProps: ModalProps) => React.ReactNode;\n\nfunction focusFirstWithinNode(node: HTMLElement) {\n if (node && node.querySelectorAll) {\n const elements = node.querySelectorAll('input, button');\n if (elements.length > 0) {\n const firstElement = elements[0];\n // @ts-expect-error focus might be missing\n if (typeof firstElement.focus === 'function') {\n // @ts-expect-error focus might be missing\n firstElement.focus();\n }\n }\n }\n}\n\nexport const Modal = ({\n allowHeightOverflow = false,\n position = 'center',\n shouldCloseOnEscapePress = true,\n shouldCloseOnOverlayClick = true,\n size = 'medium',\n testId = 'cf-ui-modal',\n topOffset = '50px',\n aria,\n ...otherProps\n}: ExpandProps<ModalProps>) => {\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n const props = {\n ...otherProps,\n allowHeightOverflow,\n position,\n shouldCloseOnEscapePress,\n shouldCloseOnOverlayClick,\n size,\n testId,\n topOffset,\n };\n\n const styles = getModalStyles({\n position,\n size,\n allowHeightOverflow,\n className: otherProps.className,\n });\n\n React.useEffect(() => {\n if (props.isShown) {\n setTimeout(() => {\n if (props.initialFocusRef && props.initialFocusRef.current) {\n if (props.initialFocusRef.current.focus) {\n props.initialFocusRef.current.focus();\n }\n } else if (contentRef.current) {\n focusFirstWithinNode(contentRef.current);\n }\n }, 100);\n }\n }, [props.isShown, props.initialFocusRef]);\n\n const renderDefault = () => {\n return (\n <>\n {otherProps.title && (\n <ModalHeader\n title={otherProps.title}\n onClose={props.onClose}\n {...otherProps.modalHeaderProps}\n />\n )}\n <ModalContent {...otherProps.modalContentProps}>\n {otherProps.children}\n </ModalContent>\n </>\n );\n };\n\n return (\n <ReactModal\n ariaHideApp={false}\n aria={aria}\n onRequestClose={props.onClose}\n isOpen={otherProps.isShown}\n onAfterOpen={props.onAfterOpen}\n shouldCloseOnEsc={shouldCloseOnEscapePress}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldFocusAfterRender\n shouldReturnFocusAfterClose\n portalClassName={styles.portal}\n style={{\n content: {\n top: position === 'center' ? 0 : topOffset,\n },\n }}\n className={{\n base: styles.base.root,\n afterOpen: styles.base.afterOpen,\n beforeClose: styles.base.beforeClose,\n }}\n overlayClassName={{\n base: styles.modalOverlay.root,\n afterOpen: styles.modalOverlay.afterOpen,\n beforeClose: styles.modalOverlay.beforeClose,\n }}\n closeTimeoutMS={200}\n contentRef={(ref) => {\n contentRef.current = ref;\n }}\n >\n <Box\n testId={testId}\n style={{\n width: ModalSizesMapper[size] || size,\n }}\n className={styles.modal}\n data-modal-root\n >\n {typeof otherProps.children === 'function'\n ? otherProps.children(props)\n : renderDefault()}\n </Box>\n </ReactModal>\n );\n};\n\nModal.displayName = 'Modal';\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { CloseIcon } from '@contentful/f36-icons';\nimport { Flex } from '@contentful/f36-core';\nimport type { PropsWithHTMLElement, CommonProps } from '@contentful/f36-core';\nimport { Button } from '@contentful/f36-button';\nimport { Subheading } from '@contentful/f36-typography';\n\nimport { getModalHeaderStyles } from './ModalHeader.styles';\n\ninterface ModalHeaderInternalProps extends CommonProps {\n title: string;\n onClose?: Function;\n}\n\nexport type ModalHeaderProps = PropsWithHTMLElement<\n ModalHeaderInternalProps,\n 'div'\n>;\n\nexport function ModalHeader({\n onClose,\n title,\n testId = 'cf-ui-modal-header',\n className,\n ...otherProps\n}: ModalHeaderProps): React.ReactElement {\n const styles = getModalHeaderStyles();\n\n return (\n <Flex\n {...otherProps}\n className={cx(styles.root, className)}\n testId={testId}\n alignItems=\"center\"\n justifyContent=\"space-between\"\n >\n <Subheading as=\"h1\" isTruncated marginBottom=\"none\">\n {title}\n </Subheading>\n {onClose && (\n <Flex alignItems=\"center\" className={styles.buttonContainer}>\n <Button\n variant=\"transparent\"\n aria-label=\"Close\"\n startIcon={<CloseIcon size=\"small\" />}\n onClick={() => {\n onClose();\n }}\n size=\"small\"\n />\n </Flex>\n )}\n </Flex>\n );\n}\n\nModalHeader.displayName = 'ModalHeader';\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\n\nexport function getModalHeaderStyles() {\n return {\n root: css({\n position: 'relative',\n padding: `${tokens.spacingM} ${tokens.spacingM} ${tokens.spacingM} ${tokens.spacingL}`,\n borderRadius: `${tokens.borderRadiusMedium} ${tokens.borderRadiusMedium} 0 0`,\n borderBottom: `1px solid ${tokens.gray300}`,\n }),\n buttonContainer: css({\n position: 'relative',\n width: tokens.spacing2Xl,\n height: tokens.spacingL,\n button: {\n position: 'absolute',\n top: `calc(-1 * ${tokens.spacing2Xs})`,\n right: 0,\n },\n }),\n };\n}\n","import React from 'react';\nimport { cx } from 'emotion';\nimport type { PropsWithHTMLElement, CommonProps } from '@contentful/f36-core';\nimport { Box } from '@contentful/f36-core';\nimport { getModalContentStyles } from './ModalContent.styles';\n\ninterface ModalContentInternalProps extends CommonProps {\n children: React.ReactNode;\n}\n\nexport type ModalContentProps = PropsWithHTMLElement<\n ModalContentInternalProps,\n 'div'\n>;\n\nexport function ModalContent({\n testId = 'cf-ui-modal-content',\n className,\n children,\n ...otherProps\n}: ModalContentProps) {\n const styles = getModalContentStyles();\n return (\n <Box\n {...otherProps}\n as=\"div\"\n className={cx(styles.root, className)}\n testId={testId}\n >\n {children}\n </Box>\n );\n}\n\nModalContent.displayName = 'ModalContent';\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport function getModalContentStyles() {\n return {\n root: css({\n padding: `${tokens.spacingM} ${tokens.spacingL}`,\n color: tokens.gray700,\n fontSize: tokens.fontSizeM,\n fontFamily: tokens.fontStackPrimary,\n lineHeight: tokens.lineHeightM,\n overflowY: 'auto',\n overflowX: 'auto',\n boxSizing: 'border-box',\n }),\n };\n}\n","import tokens from '@contentful/f36-tokens';\nimport { css, cx } from 'emotion';\n\nimport type { ModalProps } from './Modal';\n\nexport function getModalStyles(props: {\n size: ModalProps['size'];\n position: ModalProps['position'];\n allowHeightOverflow?: boolean;\n className?: string;\n}) {\n const modal = cx(\n css({\n margin: tokens.spacing2Xl,\n backgroundColor: tokens.colorWhite,\n borderRadius: props.size === 'zen' ? 0 : tokens.borderRadiusMedium,\n boxShadow: tokens.boxShadowHeavy,\n maxHeight: `calc(100vh - 1rem * (100 / ${tokens.fontBaseDefault}))`,\n maxWidth: `calc(100vw - 1rem * (100 / ${tokens.fontBaseDefault}))`,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n }),\n props.allowHeightOverflow\n ? css({\n overflow: 'auto',\n maxHeight: 'none',\n })\n : null,\n props.size === 'zen'\n ? css({\n maxWidth: 'none',\n maxHeight: 'none',\n margin: 0,\n height: '100%',\n width: '100%',\n })\n : null,\n props.className,\n );\n\n return {\n portal: css({\n display: 'block',\n }),\n base: {\n root: cx(\n css({\n zIndex: tokens.zIndexModalContent,\n position: 'relative',\n padding: 0,\n display: 'inline-block',\n margin: '0 auto',\n textAlign: 'left',\n outline: 'none',\n transform: props.size === 'zen' ? 'scale(1)' : 'scale(0.85)',\n transition: `transform ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n }),\n props.size === 'zen'\n ? css({\n width: '100%',\n height: '100%',\n })\n : null,\n ),\n afterOpen: css({\n transform: 'scale(1) !important',\n }),\n beforeClose: css({\n transform: props.size === 'zen' ? 'scale(1)' : 'scale(0.85)',\n }),\n },\n modalOverlay: {\n root: cx(\n css({\n display: 'flex',\n alignItems: 'baseline',\n flexWrap: 'wrap',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: tokens.zIndexModal,\n opacity: 0,\n transition: `opacity ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault}`,\n position: 'fixed',\n overflowY: 'auto',\n backgroundColor: 'rgba(12, 20, 28, 0.74902)',\n textAlign: 'center',\n }),\n props.position === 'center'\n ? css({\n alignItems: 'center',\n justifyContent: 'center',\n })\n : null,\n ),\n afterOpen: css({\n opacity: 1,\n }),\n beforeClose: css({\n opacity: 0,\n }),\n },\n modal,\n };\n}\n","import React from 'react';\n\nimport type { PropsWithHTMLElement, CommonProps } from '@contentful/f36-core';\nimport { Flex } from '@contentful/f36-core';\nimport { ButtonGroup } from '@contentful/f36-button';\n\ninterface ModalControlsInternalProps extends CommonProps {\n children: React.ReactElement[] | React.ReactElement;\n}\n\nexport type ModalControlsProps = PropsWithHTMLElement<\n ModalControlsInternalProps,\n 'div'\n>;\n\nexport function ModalControls({\n testId = 'cf-ui-modal-controls',\n className,\n children,\n ...otherProps\n}: ModalControlsProps): React.ReactElement {\n return (\n <Flex\n {...otherProps}\n className={className}\n testId={testId}\n flexDirection=\"row\"\n justifyContent=\"flex-end\"\n margin=\"spacingL\"\n marginTop=\"none\"\n >\n <ButtonGroup variant=\"spaced\" spacing=\"spacingS\">\n {children}\n </ButtonGroup>\n </Flex>\n );\n}\n\nModalControls.displayName = 'ModalControls';\n","import React from 'react';\n\nimport { Modal } from '../CompoundModal';\nimport type { ModalProps } from '../Modal';\nimport type { ModalHeaderProps } from '../ModalHeader/ModalHeader';\nimport type { ModalContentProps } from '../ModalContent/ModalContent';\nimport type { ModalControlsProps } from '../ModalControls/ModalControls';\nimport { Button } from '@contentful/f36-button';\n\nexport interface ModalConfirmProps {\n /**\n * When true, the dialog is shown.\n */\n isShown: boolean;\n /**\n * Function that will be called when the confirm button is clicked. This does not close the ModalConfirm.\n */\n onConfirm(): void;\n /**\n * Function that will be called when the cancel button is clicked. This does not close the ModalConfirm.\n */\n onCancel: ModalProps['onClose'];\n /**\n Modal title that is used in header\n */\n title?: string;\n /**\n * Label of the confirm button\n */\n confirmLabel?: string | false;\n /**\n * Label of the cancel button\n */\n cancelLabel?: string | false;\n /**\n * The intent of the ModalConfirm. Used for the Button.\n */\n intent?: 'primary' | 'positive' | 'negative';\n /**\n * Size of the modal window\n */\n size?: ModalProps['size'];\n /**\n * Boolean indicating if clicking the overlay should close the overlay.\n */\n shouldCloseOnOverlayClick?: boolean;\n /**\n * Boolean indicating if pressing the esc key should close the overlay.\n */\n shouldCloseOnEscapePress?: boolean;\n /**\n * When true, the confirm button is set to disabled.\n */\n isConfirmDisabled?: boolean;\n /**\n * When true, the confirm button is set to loading.\n */\n isConfirmLoading?: boolean;\n /**\n * Are modals higher than viewport allowed\n */\n allowHeightOverflow?: boolean;\n\n /**\n * Optional props to override ModalHeader behaviour\n */\n modalHeaderProps?: Partial<ModalHeaderProps>;\n\n /**\n * Optional props to override ModalContent behaviour\n */\n modalContentProps?: Partial<ModalContentProps>;\n\n /**\n * Optional props to override ModalControl behaviour\n */\n modalControlsProps?: Partial<ModalControlsProps>;\n\n /**\n * Optional property to set initial focus\n */\n initialFocusRef?: React.RefObject<HTMLElement>;\n\n testId?: string;\n confirmTestId?: string;\n cancelTestId?: string;\n children: React.ReactNode;\n}\n\nexport function ModalConfirm({\n allowHeightOverflow = false,\n cancelLabel = 'Cancel',\n cancelTestId = 'cf-ui-modal-confirm-cancel-button',\n children,\n confirmLabel = 'Confirm',\n confirmTestId = 'cf-ui-modal-confirm-confirm-button',\n intent = 'positive',\n isConfirmDisabled = false,\n isConfirmLoading = false,\n isShown,\n modalContentProps,\n modalControlsProps,\n modalHeaderProps,\n onCancel,\n onConfirm,\n shouldCloseOnEscapePress = true,\n shouldCloseOnOverlayClick = true,\n size = 'medium',\n testId = 'cf-ui-modal-confirm',\n title = 'Are you sure?',\n initialFocusRef,\n}: ModalConfirmProps) {\n const cancelRef = React.useRef(null);\n\n const confirmButton = confirmLabel ? (\n <Button\n testId={confirmTestId}\n isDisabled={isConfirmDisabled}\n isLoading={isConfirmLoading}\n variant={intent}\n size=\"small\"\n onClick={() => onConfirm()}\n >\n {confirmLabel}\n </Button>\n ) : null;\n\n const cancelButton = cancelLabel ? (\n <Button\n testId={cancelTestId}\n variant=\"secondary\"\n onClick={onCancel}\n size=\"small\"\n ref={initialFocusRef || cancelRef}\n >\n {cancelLabel}\n </Button>\n ) : null;\n\n return (\n <Modal\n testId={testId}\n isShown={isShown}\n onClose={onCancel}\n size={size}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n shouldCloseOnEscapePress={shouldCloseOnEscapePress}\n allowHeightOverflow={allowHeightOverflow}\n initialFocusRef={cancelRef}\n >\n {() => {\n return (\n <React.Fragment>\n <Modal.Header title={title || ''} {...modalHeaderProps} />\n <Modal.Content {...modalContentProps}>{children}</Modal.Content>\n <Modal.Controls {...modalControlsProps}>\n {cancelButton}\n {confirmButton}\n </Modal.Controls>\n </React.Fragment>\n );\n }}\n </Modal>\n );\n}\n\nModalConfirm.displayName = 'ModalConfirm';\n","/* global Promise */\nimport ReactDOM from 'react-dom';\n\n// @todo: change any to unknown\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface ModalLauncherComponentRendererProps<T = any> {\n isShown: boolean;\n onClose: (result?: T) => void;\n}\n\ninterface ModalLauncherOpenOptions {\n /**\n * Unique id to be used as identifier for the modal contianer\n */\n modalId?: string;\n /**\n * ms before removing the component from the tree\n * @default 300\n */\n delay?: number;\n}\n\ninterface CloseModalData {\n delay: number;\n render: (args: ModalLauncherComponentRendererProps<any>) => void;\n currentConfig: ModalLauncherComponentRendererProps<any>;\n}\n\nconst getRoot = (rootElId: string): HTMLElement => {\n // Reuse the container if we find it\n let rootDom = document.getElementById(rootElId);\n if (rootDom !== null) {\n return rootDom;\n }\n\n // Otherwise create it\n rootDom = document.createElement('div');\n rootDom.setAttribute('id', rootElId);\n document.body.appendChild(rootDom);\n return rootDom;\n};\n\nconst openModalsIds: Map<string, CloseModalData> = new Map();\nfunction closeAll() {\n openModalsIds.forEach(async ({ render, currentConfig, delay }, rootElId) => {\n const config = { ...currentConfig, isShown: false };\n render(config);\n await new Promise((resolveDelay) => setTimeout(resolveDelay, delay));\n ReactDOM.unmountComponentAtNode(getRoot(rootElId));\n openModalsIds.delete(rootElId);\n });\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction open<T = any>(\n componentRenderer: (\n props: ModalLauncherComponentRendererProps<T>,\n ) => JSX.Element,\n options: ModalLauncherOpenOptions = {},\n): Promise<T> {\n options = { delay: 300, ...options };\n\n // Allow components to specify if they wish to reuse the modal container\n const rootElId = `modals-root${options.modalId || Date.now()}`;\n const rootDom = getRoot(rootElId);\n\n return new Promise((resolve) => {\n let currentConfig = { onClose, isShown: true };\n\n function render({\n onClose,\n isShown,\n }: ModalLauncherComponentRendererProps<T>) {\n ReactDOM.render(componentRenderer({ onClose, isShown }), rootDom);\n }\n\n async function onClose(arg?: T) {\n currentConfig = {\n ...currentConfig,\n isShown: false,\n };\n render(currentConfig);\n await new Promise((resolveDelay) =>\n setTimeout(resolveDelay, options.delay),\n );\n ReactDOM.unmountComponentAtNode(rootDom);\n rootDom.remove();\n openModalsIds.delete(rootElId);\n resolve(arg);\n }\n\n render(currentConfig);\n openModalsIds.set(rootElId, {\n render,\n currentConfig,\n delay: options.delay,\n });\n });\n}\n\nexport const ModalLauncher = {\n open,\n closeAll,\n};\n"],"names":["Modal","ModalProps","ModalConfirm","ModalConfirmProps","ModalContent","ModalContentProps","ModalControls","ModalControlsProps","ModalHeader","ModalHeaderProps","ModalLauncher","OriginalModal","CompoundModal","Content","Header","Controls","React","ReactModal","Box","CommonProps","ExpandProps","getModalStyles","ModalSizeType","ModalPositionType","ModalSizesMapper","medium","small","large","fullWidth","zen","isShown","onClose","Props","onAfterOpen","aria","shouldCloseOnOverlayClick","shouldCloseOnEscapePress","position","topOffset","title","size","allowHeightOverflow","modalHeaderProps","Partial","modalContentProps","initialFocusRef","RefObject","HTMLElement","children","ReactNode","RenderModal","modalProps","focusFirstWithinNode","node","querySelectorAll","elements","length","firstElement","focus","testId","otherProps","contentRef","useRef","HTMLDivElement","props","styles","className","useEffect","setTimeout","current","renderDefault","portal","content","top","base","root","afterOpen","beforeClose","modalOverlay","ref","width","modal","displayName","CloseIcon","Flex","PropsWithHTMLElement","Button","Subheading","getModalHeaderStyles","ModalHeaderInternalProps","Function","ReactElement","buttonContainer","tokens","padding","spacingM","spacingL","borderRadius","borderRadiusMedium","borderBottom","gray300","spacing2Xl","height","button","spacing2Xs","right","getModalContentStyles","ModalContentInternalProps","color","gray700","fontSize","fontSizeM","fontFamily","fontStackPrimary","lineHeight","lineHeightM","overflowY","overflowX","boxSizing","margin","backgroundColor","colorWhite","boxShadow","boxShadowHeavy","maxHeight","fontBaseDefault","maxWidth","overflow","display","flexDirection","zIndex","zIndexModalContent","textAlign","outline","transform","transition","transitionDurationDefault","transitionEasingDefault","alignItems","flexWrap","bottom","left","zIndexModal","opacity","ButtonGroup","ModalControlsInternalProps","onConfirm","onCancel","confirmLabel","cancelLabel","intent","isConfirmDisabled","isConfirmLoading","modalControlsProps","confirmTestId","cancelTestId","cancelRef","confirmButton","cancelButton","ReactDOM","ModalLauncherComponentRendererProps","result","T","ModalLauncherOpenOptions","modalId","delay","CloseModalData","render","args","currentConfig","getRoot","rootElId","rootDom","document","getElementById","createElement","setAttribute","body","appendChild","openModalsIds","Map","closeAll","forEach","config","Promise","resolveDelay","unmountComponentAtNode","delete","open","componentRenderer","JSX","Element","options","Date","now","resolve","arg","remove","set"],"version":3,"file":"main.js.map"}
|
package/dist/module.js
CHANGED
|
@@ -1,24 +1,13 @@
|
|
|
1
|
-
import $
|
|
2
|
-
import $
|
|
3
|
-
import {Box as $
|
|
4
|
-
import {cx as $
|
|
5
|
-
import {CloseIcon as $
|
|
6
|
-
import {Button as $
|
|
7
|
-
import {Subheading as $
|
|
8
|
-
import $
|
|
9
|
-
import $
|
|
10
|
-
|
|
11
|
-
function $parcel$export(e, n, v, s) {
|
|
12
|
-
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
|
13
|
-
}
|
|
14
|
-
var $a4925937a214d1d0$exports = {};
|
|
1
|
+
import $ggPfR$react, {useRef as $ggPfR$useRef, useEffect as $ggPfR$useEffect, createElement as $ggPfR$createElement, Fragment as $ggPfR$Fragment} from "react";
|
|
2
|
+
import $ggPfR$reactmodal from "react-modal";
|
|
3
|
+
import {Box as $ggPfR$Box, Flex as $ggPfR$Flex} from "@contentful/f36-core";
|
|
4
|
+
import {cx as $ggPfR$cx, css as $ggPfR$css} from "emotion";
|
|
5
|
+
import {CloseIcon as $ggPfR$CloseIcon} from "@contentful/f36-icons";
|
|
6
|
+
import {Button as $ggPfR$Button, ButtonGroup as $ggPfR$ButtonGroup} from "@contentful/f36-button";
|
|
7
|
+
import {Subheading as $ggPfR$Subheading} from "@contentful/f36-typography";
|
|
8
|
+
import $ggPfR$contentfulf36tokens from "@contentful/f36-tokens";
|
|
9
|
+
import $ggPfR$reactdom from "react-dom";
|
|
15
10
|
|
|
16
|
-
$parcel$export($a4925937a214d1d0$exports, "Modal", () => $d7b21827f6622ba3$export$2b77a92f1a5ad772);
|
|
17
|
-
$parcel$export($a4925937a214d1d0$exports, "ModalConfirm", () => $78040759975f86df$export$427af6990c8ff682);
|
|
18
|
-
$parcel$export($a4925937a214d1d0$exports, "ModalContent", () => $2e16b6f9c0e7012d$export$6da19a24bf249f17);
|
|
19
|
-
$parcel$export($a4925937a214d1d0$exports, "ModalControls", () => $12733d8c9bae35ea$export$c63fb08199be8e0e);
|
|
20
|
-
$parcel$export($a4925937a214d1d0$exports, "ModalHeader", () => $08ed4541188cb150$export$f50a68e3694789ee);
|
|
21
|
-
$parcel$export($a4925937a214d1d0$exports, "ModalLauncher", () => $1dc787d4cf525536$export$e21b828b42c54a37);
|
|
22
11
|
|
|
23
12
|
|
|
24
13
|
|
|
@@ -32,19 +21,19 @@ $parcel$export($a4925937a214d1d0$exports, "ModalLauncher", () => $1dc787d4cf5255
|
|
|
32
21
|
|
|
33
22
|
function $cdc4e74e8b16090b$export$4bef00d568400c9b() {
|
|
34
23
|
return {
|
|
35
|
-
root: /*#__PURE__*/ $
|
|
24
|
+
root: /*#__PURE__*/ $ggPfR$css({
|
|
36
25
|
position: 'relative',
|
|
37
|
-
padding: `${$
|
|
38
|
-
borderRadius: `${$
|
|
39
|
-
borderBottom: `1px solid ${$
|
|
26
|
+
padding: `${$ggPfR$contentfulf36tokens.spacingM} ${$ggPfR$contentfulf36tokens.spacingM} ${$ggPfR$contentfulf36tokens.spacingM} ${$ggPfR$contentfulf36tokens.spacingL}`,
|
|
27
|
+
borderRadius: `${$ggPfR$contentfulf36tokens.borderRadiusMedium} ${$ggPfR$contentfulf36tokens.borderRadiusMedium} 0 0`,
|
|
28
|
+
borderBottom: `1px solid ${$ggPfR$contentfulf36tokens.gray300}`
|
|
40
29
|
}),
|
|
41
|
-
buttonContainer: /*#__PURE__*/ $
|
|
30
|
+
buttonContainer: /*#__PURE__*/ $ggPfR$css({
|
|
42
31
|
position: 'relative',
|
|
43
|
-
width: $
|
|
44
|
-
height: $
|
|
32
|
+
width: $ggPfR$contentfulf36tokens.spacing2Xl,
|
|
33
|
+
height: $ggPfR$contentfulf36tokens.spacingL,
|
|
45
34
|
button: {
|
|
46
35
|
position: 'absolute',
|
|
47
|
-
top: `calc(-1 * ${$
|
|
36
|
+
top: `calc(-1 * ${$ggPfR$contentfulf36tokens.spacing2Xs})`,
|
|
48
37
|
right: 0
|
|
49
38
|
}
|
|
50
39
|
})
|
|
@@ -54,30 +43,30 @@ function $cdc4e74e8b16090b$export$4bef00d568400c9b() {
|
|
|
54
43
|
|
|
55
44
|
function $08ed4541188cb150$export$f50a68e3694789ee({ onClose: onClose , title: title , testId: testId = 'cf-ui-modal-header' , className: className , ...otherProps }) {
|
|
56
45
|
const styles = $cdc4e74e8b16090b$export$4bef00d568400c9b();
|
|
57
|
-
return
|
|
46
|
+
return /*#__PURE__*/ $ggPfR$react.createElement($ggPfR$Flex, {
|
|
58
47
|
...otherProps,
|
|
59
|
-
className: $
|
|
48
|
+
className: $ggPfR$cx(styles.root, className),
|
|
60
49
|
testId: testId,
|
|
61
50
|
alignItems: "center",
|
|
62
51
|
justifyContent: "space-between"
|
|
63
|
-
}, /*#__PURE__*/ $
|
|
52
|
+
}, /*#__PURE__*/ $ggPfR$react.createElement($ggPfR$Subheading, {
|
|
64
53
|
as: "h1",
|
|
65
54
|
isTruncated: true,
|
|
66
55
|
marginBottom: "none"
|
|
67
|
-
}, title), onClose && /*#__PURE__*/ $
|
|
56
|
+
}, title), onClose && /*#__PURE__*/ $ggPfR$react.createElement($ggPfR$Flex, {
|
|
68
57
|
alignItems: "center",
|
|
69
58
|
className: styles.buttonContainer
|
|
70
|
-
}, /*#__PURE__*/ $
|
|
59
|
+
}, /*#__PURE__*/ $ggPfR$react.createElement($ggPfR$Button, {
|
|
71
60
|
variant: "transparent",
|
|
72
61
|
"aria-label": "Close",
|
|
73
|
-
startIcon: /*#__PURE__*/ $
|
|
62
|
+
startIcon: /*#__PURE__*/ $ggPfR$react.createElement($ggPfR$CloseIcon, {
|
|
74
63
|
size: "small"
|
|
75
64
|
}),
|
|
76
65
|
onClick: ()=>{
|
|
77
66
|
onClose();
|
|
78
67
|
},
|
|
79
68
|
size: "small"
|
|
80
|
-
})))
|
|
69
|
+
})));
|
|
81
70
|
}
|
|
82
71
|
$08ed4541188cb150$export$f50a68e3694789ee.displayName = 'ModalHeader';
|
|
83
72
|
|
|
@@ -89,12 +78,12 @@ $08ed4541188cb150$export$f50a68e3694789ee.displayName = 'ModalHeader';
|
|
|
89
78
|
|
|
90
79
|
function $d20e7c3da09cc1c0$export$5168abbf3ad664a0() {
|
|
91
80
|
return {
|
|
92
|
-
root: /*#__PURE__*/ $
|
|
93
|
-
padding: `${$
|
|
94
|
-
color: $
|
|
95
|
-
fontSize: $
|
|
96
|
-
fontFamily: $
|
|
97
|
-
lineHeight: $
|
|
81
|
+
root: /*#__PURE__*/ $ggPfR$css({
|
|
82
|
+
padding: `${$ggPfR$contentfulf36tokens.spacingM} ${$ggPfR$contentfulf36tokens.spacingL}`,
|
|
83
|
+
color: $ggPfR$contentfulf36tokens.gray700,
|
|
84
|
+
fontSize: $ggPfR$contentfulf36tokens.fontSizeM,
|
|
85
|
+
fontFamily: $ggPfR$contentfulf36tokens.fontStackPrimary,
|
|
86
|
+
lineHeight: $ggPfR$contentfulf36tokens.lineHeightM,
|
|
98
87
|
overflowY: 'auto',
|
|
99
88
|
overflowX: 'auto',
|
|
100
89
|
boxSizing: 'border-box'
|
|
@@ -105,12 +94,12 @@ function $d20e7c3da09cc1c0$export$5168abbf3ad664a0() {
|
|
|
105
94
|
|
|
106
95
|
function $2e16b6f9c0e7012d$export$6da19a24bf249f17({ testId: testId = 'cf-ui-modal-content' , className: className , children: children , ...otherProps }) {
|
|
107
96
|
const styles = $d20e7c3da09cc1c0$export$5168abbf3ad664a0();
|
|
108
|
-
return
|
|
97
|
+
return /*#__PURE__*/ $ggPfR$react.createElement($ggPfR$Box, {
|
|
109
98
|
...otherProps,
|
|
110
99
|
as: "div",
|
|
111
|
-
className: $
|
|
100
|
+
className: $ggPfR$cx(styles.root, className),
|
|
112
101
|
testId: testId
|
|
113
|
-
}, children)
|
|
102
|
+
}, children);
|
|
114
103
|
}
|
|
115
104
|
$2e16b6f9c0e7012d$export$6da19a24bf249f17.displayName = 'ModalContent';
|
|
116
105
|
|
|
@@ -119,55 +108,53 @@ $2e16b6f9c0e7012d$export$6da19a24bf249f17.displayName = 'ModalContent';
|
|
|
119
108
|
|
|
120
109
|
|
|
121
110
|
function $f482f3cd8cb551fb$export$9af97f4b0b4c597a(props) {
|
|
122
|
-
const modal = $
|
|
123
|
-
margin: $
|
|
124
|
-
backgroundColor: $
|
|
125
|
-
borderRadius: $
|
|
126
|
-
boxShadow: $
|
|
127
|
-
maxHeight: `calc(100vh - 1rem * (100 / ${$
|
|
128
|
-
maxWidth: `calc(100vw - 1rem * (100 / ${$
|
|
111
|
+
const modal = $ggPfR$cx(/*#__PURE__*/ $ggPfR$css({
|
|
112
|
+
margin: $ggPfR$contentfulf36tokens.spacing2Xl,
|
|
113
|
+
backgroundColor: $ggPfR$contentfulf36tokens.colorWhite,
|
|
114
|
+
borderRadius: props.size === 'zen' ? 0 : $ggPfR$contentfulf36tokens.borderRadiusMedium,
|
|
115
|
+
boxShadow: $ggPfR$contentfulf36tokens.boxShadowHeavy,
|
|
116
|
+
maxHeight: `calc(100vh - 1rem * (100 / ${$ggPfR$contentfulf36tokens.fontBaseDefault}))`,
|
|
117
|
+
maxWidth: `calc(100vw - 1rem * (100 / ${$ggPfR$contentfulf36tokens.fontBaseDefault}))`,
|
|
129
118
|
overflow: 'hidden',
|
|
130
119
|
display: 'flex',
|
|
131
120
|
flexDirection: 'column'
|
|
132
|
-
}), props.allowHeightOverflow ? /*#__PURE__*/ $
|
|
121
|
+
}), props.allowHeightOverflow ? /*#__PURE__*/ $ggPfR$css({
|
|
133
122
|
name: "1evlo53",
|
|
134
123
|
styles: "overflow:auto;max-height:none;"
|
|
135
|
-
}) : null, props.size === 'zen' ? /*#__PURE__*/ $
|
|
124
|
+
}) : null, props.size === 'zen' ? /*#__PURE__*/ $ggPfR$css({
|
|
136
125
|
name: "11c88st",
|
|
137
126
|
styles: "max-width:none;max-height:none;margin:0;height:100%;width:100%;"
|
|
138
127
|
}) : null, props.className);
|
|
139
128
|
return {
|
|
140
|
-
|
|
141
|
-
portal: /*#__PURE__*/ $8jMle$css({
|
|
129
|
+
portal: /*#__PURE__*/ $ggPfR$css({
|
|
142
130
|
name: "13o7eu2",
|
|
143
131
|
styles: "display:block;"
|
|
144
132
|
}),
|
|
145
133
|
base: {
|
|
146
|
-
root: $
|
|
147
|
-
zIndex: $
|
|
134
|
+
root: $ggPfR$cx(/*#__PURE__*/ $ggPfR$css({
|
|
135
|
+
zIndex: $ggPfR$contentfulf36tokens.zIndexModalContent,
|
|
148
136
|
position: 'relative',
|
|
149
137
|
padding: 0,
|
|
150
138
|
display: 'inline-block',
|
|
151
139
|
margin: '0 auto',
|
|
152
140
|
textAlign: 'left',
|
|
153
141
|
outline: 'none',
|
|
154
|
-
transform: 'scale(0.85)',
|
|
155
|
-
transition: `transform ${$
|
|
156
|
-
}), props.size === 'zen' ? /*#__PURE__*/ $
|
|
142
|
+
transform: props.size === 'zen' ? 'scale(1)' : 'scale(0.85)',
|
|
143
|
+
transition: `transform ${$ggPfR$contentfulf36tokens.transitionDurationDefault} ${$ggPfR$contentfulf36tokens.transitionEasingDefault}`
|
|
144
|
+
}), props.size === 'zen' ? /*#__PURE__*/ $ggPfR$css({
|
|
157
145
|
name: "uwwqev",
|
|
158
146
|
styles: "width:100%;height:100%;"
|
|
159
147
|
}) : null),
|
|
160
|
-
afterOpen: /*#__PURE__*/ $
|
|
161
|
-
name: "
|
|
162
|
-
styles: "transform:scale(1);"
|
|
148
|
+
afterOpen: /*#__PURE__*/ $ggPfR$css({
|
|
149
|
+
name: "plgkgv",
|
|
150
|
+
styles: "transform:scale(1) !important;"
|
|
163
151
|
}),
|
|
164
|
-
beforeClose: /*#__PURE__*/ $
|
|
165
|
-
|
|
166
|
-
styles: "transform:scale(0.85);"
|
|
152
|
+
beforeClose: /*#__PURE__*/ $ggPfR$css({
|
|
153
|
+
transform: props.size === 'zen' ? 'scale(1)' : 'scale(0.85)'
|
|
167
154
|
})
|
|
168
155
|
},
|
|
169
156
|
modalOverlay: {
|
|
170
|
-
root: $
|
|
157
|
+
root: $ggPfR$cx(/*#__PURE__*/ $ggPfR$css({
|
|
171
158
|
display: 'flex',
|
|
172
159
|
alignItems: 'baseline',
|
|
173
160
|
flexWrap: 'wrap',
|
|
@@ -175,26 +162,27 @@ function $f482f3cd8cb551fb$export$9af97f4b0b4c597a(props) {
|
|
|
175
162
|
right: 0,
|
|
176
163
|
bottom: 0,
|
|
177
164
|
left: 0,
|
|
178
|
-
zIndex: $
|
|
165
|
+
zIndex: $ggPfR$contentfulf36tokens.zIndexModal,
|
|
179
166
|
opacity: 0,
|
|
180
|
-
transition: `opacity ${$
|
|
167
|
+
transition: `opacity ${$ggPfR$contentfulf36tokens.transitionDurationDefault} ${$ggPfR$contentfulf36tokens.transitionEasingDefault}`,
|
|
181
168
|
position: 'fixed',
|
|
182
169
|
overflowY: 'auto',
|
|
183
170
|
backgroundColor: 'rgba(12, 20, 28, 0.74902)',
|
|
184
171
|
textAlign: 'center'
|
|
185
|
-
}), props.position === 'center' ? /*#__PURE__*/ $
|
|
172
|
+
}), props.position === 'center' ? /*#__PURE__*/ $ggPfR$css({
|
|
186
173
|
name: "1qe4tyl",
|
|
187
174
|
styles: "align-items:center;justify-content:center;"
|
|
188
175
|
}) : null),
|
|
189
|
-
afterOpen: /*#__PURE__*/ $
|
|
176
|
+
afterOpen: /*#__PURE__*/ $ggPfR$css({
|
|
190
177
|
name: "whh5e5",
|
|
191
178
|
styles: "opacity:1;"
|
|
192
179
|
}),
|
|
193
|
-
beforeClose: /*#__PURE__*/ $
|
|
180
|
+
beforeClose: /*#__PURE__*/ $ggPfR$css({
|
|
194
181
|
name: "q7lffx",
|
|
195
182
|
styles: "opacity:0;"
|
|
196
183
|
})
|
|
197
|
-
}
|
|
184
|
+
},
|
|
185
|
+
modal: modal
|
|
198
186
|
};
|
|
199
187
|
}
|
|
200
188
|
|
|
@@ -216,8 +204,8 @@ function $bfd2aa2f2cc9e088$var$focusFirstWithinNode(node) {
|
|
|
216
204
|
}
|
|
217
205
|
}
|
|
218
206
|
}
|
|
219
|
-
|
|
220
|
-
const contentRef = $
|
|
207
|
+
const $bfd2aa2f2cc9e088$export$2b77a92f1a5ad772 = ({ allowHeightOverflow: allowHeightOverflow = false , position: position = 'center' , shouldCloseOnEscapePress: shouldCloseOnEscapePress = true , shouldCloseOnOverlayClick: shouldCloseOnOverlayClick = true , size: size = 'medium' , testId: testId = 'cf-ui-modal' , topOffset: topOffset = '50px' , aria: aria , ...otherProps })=>{
|
|
208
|
+
const contentRef = $ggPfR$useRef(null);
|
|
221
209
|
const props = {
|
|
222
210
|
...otherProps,
|
|
223
211
|
allowHeightOverflow: allowHeightOverflow,
|
|
@@ -234,7 +222,7 @@ function $bfd2aa2f2cc9e088$export$2b77a92f1a5ad772({ allowHeightOverflow: allowH
|
|
|
234
222
|
allowHeightOverflow: allowHeightOverflow,
|
|
235
223
|
className: otherProps.className
|
|
236
224
|
});
|
|
237
|
-
$
|
|
225
|
+
$ggPfR$useEffect(()=>{
|
|
238
226
|
if (props.isShown) setTimeout(()=>{
|
|
239
227
|
if (props.initialFocusRef && props.initialFocusRef.current) {
|
|
240
228
|
if (props.initialFocusRef.current.focus) props.initialFocusRef.current.focus();
|
|
@@ -245,13 +233,13 @@ function $bfd2aa2f2cc9e088$export$2b77a92f1a5ad772({ allowHeightOverflow: allowH
|
|
|
245
233
|
props.initialFocusRef
|
|
246
234
|
]);
|
|
247
235
|
const renderDefault = ()=>{
|
|
248
|
-
return
|
|
236
|
+
return /*#__PURE__*/ $ggPfR$createElement($ggPfR$Fragment, null, otherProps.title && /*#__PURE__*/ $ggPfR$createElement($08ed4541188cb150$export$f50a68e3694789ee, {
|
|
249
237
|
title: otherProps.title,
|
|
250
238
|
onClose: props.onClose,
|
|
251
239
|
...otherProps.modalHeaderProps
|
|
252
|
-
}), /*#__PURE__*/ $
|
|
240
|
+
}), /*#__PURE__*/ $ggPfR$createElement($2e16b6f9c0e7012d$export$6da19a24bf249f17, otherProps.modalContentProps, otherProps.children));
|
|
253
241
|
};
|
|
254
|
-
return
|
|
242
|
+
return /*#__PURE__*/ $ggPfR$createElement($ggPfR$reactmodal, {
|
|
255
243
|
ariaHideApp: false,
|
|
256
244
|
aria: aria,
|
|
257
245
|
onRequestClose: props.onClose,
|
|
@@ -281,15 +269,15 @@ function $bfd2aa2f2cc9e088$export$2b77a92f1a5ad772({ allowHeightOverflow: allowH
|
|
|
281
269
|
contentRef: (ref)=>{
|
|
282
270
|
contentRef.current = ref;
|
|
283
271
|
}
|
|
284
|
-
}, /*#__PURE__*/ $
|
|
272
|
+
}, /*#__PURE__*/ $ggPfR$createElement($ggPfR$Box, {
|
|
285
273
|
testId: testId,
|
|
286
274
|
style: {
|
|
287
275
|
width: $bfd2aa2f2cc9e088$var$ModalSizesMapper[size] || size
|
|
288
276
|
},
|
|
289
277
|
className: styles.modal,
|
|
290
278
|
"data-modal-root": true
|
|
291
|
-
}, typeof otherProps.children === 'function' ? otherProps.children(props) : renderDefault()))
|
|
292
|
-
}
|
|
279
|
+
}, typeof otherProps.children === 'function' ? otherProps.children(props) : renderDefault()));
|
|
280
|
+
};
|
|
293
281
|
$bfd2aa2f2cc9e088$export$2b77a92f1a5ad772.displayName = 'Modal';
|
|
294
282
|
|
|
295
283
|
|
|
@@ -299,7 +287,7 @@ $bfd2aa2f2cc9e088$export$2b77a92f1a5ad772.displayName = 'Modal';
|
|
|
299
287
|
|
|
300
288
|
|
|
301
289
|
function $12733d8c9bae35ea$export$c63fb08199be8e0e({ testId: testId = 'cf-ui-modal-controls' , className: className , children: children , ...otherProps }) {
|
|
302
|
-
return
|
|
290
|
+
return /*#__PURE__*/ $ggPfR$react.createElement($ggPfR$Flex, {
|
|
303
291
|
...otherProps,
|
|
304
292
|
className: className,
|
|
305
293
|
testId: testId,
|
|
@@ -307,10 +295,10 @@ function $12733d8c9bae35ea$export$c63fb08199be8e0e({ testId: testId = 'cf-ui-mod
|
|
|
307
295
|
justifyContent: "flex-end",
|
|
308
296
|
margin: "spacingL",
|
|
309
297
|
marginTop: "none"
|
|
310
|
-
}, /*#__PURE__*/ $
|
|
298
|
+
}, /*#__PURE__*/ $ggPfR$react.createElement($ggPfR$ButtonGroup, {
|
|
311
299
|
variant: "spaced",
|
|
312
300
|
spacing: "spacingS"
|
|
313
|
-
}, children))
|
|
301
|
+
}, children));
|
|
314
302
|
}
|
|
315
303
|
$12733d8c9bae35ea$export$c63fb08199be8e0e.displayName = 'ModalControls';
|
|
316
304
|
|
|
@@ -325,8 +313,8 @@ $d7b21827f6622ba3$export$2b77a92f1a5ad772.Controls = $12733d8c9bae35ea$export$c6
|
|
|
325
313
|
|
|
326
314
|
|
|
327
315
|
function $78040759975f86df$export$427af6990c8ff682({ allowHeightOverflow: allowHeightOverflow = false , cancelLabel: cancelLabel = 'Cancel' , cancelTestId: cancelTestId = 'cf-ui-modal-confirm-cancel-button' , children: children , confirmLabel: confirmLabel = 'Confirm' , confirmTestId: confirmTestId = 'cf-ui-modal-confirm-confirm-button' , intent: intent = 'positive' , isConfirmDisabled: isConfirmDisabled = false , isConfirmLoading: isConfirmLoading = false , isShown: isShown , modalContentProps: modalContentProps , modalControlsProps: modalControlsProps , modalHeaderProps: modalHeaderProps , onCancel: onCancel , onConfirm: onConfirm , shouldCloseOnEscapePress: shouldCloseOnEscapePress = true , shouldCloseOnOverlayClick: shouldCloseOnOverlayClick = true , size: size = 'medium' , testId: testId = 'cf-ui-modal-confirm' , title: title = 'Are you sure?' , initialFocusRef: initialFocusRef }) {
|
|
328
|
-
const cancelRef = $
|
|
329
|
-
const confirmButton = confirmLabel ? /*#__PURE__*/ $
|
|
316
|
+
const cancelRef = $ggPfR$react.useRef(null);
|
|
317
|
+
const confirmButton = confirmLabel ? /*#__PURE__*/ $ggPfR$react.createElement($ggPfR$Button, {
|
|
330
318
|
testId: confirmTestId,
|
|
331
319
|
isDisabled: isConfirmDisabled,
|
|
332
320
|
isLoading: isConfirmLoading,
|
|
@@ -334,14 +322,14 @@ function $78040759975f86df$export$427af6990c8ff682({ allowHeightOverflow: allowH
|
|
|
334
322
|
size: "small",
|
|
335
323
|
onClick: ()=>onConfirm()
|
|
336
324
|
}, confirmLabel) : null;
|
|
337
|
-
const cancelButton = cancelLabel ? /*#__PURE__*/ $
|
|
325
|
+
const cancelButton = cancelLabel ? /*#__PURE__*/ $ggPfR$react.createElement($ggPfR$Button, {
|
|
338
326
|
testId: cancelTestId,
|
|
339
327
|
variant: "secondary",
|
|
340
328
|
onClick: onCancel,
|
|
341
329
|
size: "small",
|
|
342
330
|
ref: initialFocusRef || cancelRef
|
|
343
331
|
}, cancelLabel) : null;
|
|
344
|
-
return
|
|
332
|
+
return /*#__PURE__*/ $ggPfR$react.createElement($d7b21827f6622ba3$export$2b77a92f1a5ad772, {
|
|
345
333
|
testId: testId,
|
|
346
334
|
isShown: isShown,
|
|
347
335
|
onClose: onCancel,
|
|
@@ -351,11 +339,11 @@ function $78040759975f86df$export$427af6990c8ff682({ allowHeightOverflow: allowH
|
|
|
351
339
|
allowHeightOverflow: allowHeightOverflow,
|
|
352
340
|
initialFocusRef: cancelRef
|
|
353
341
|
}, ()=>{
|
|
354
|
-
return
|
|
342
|
+
return /*#__PURE__*/ $ggPfR$react.createElement($ggPfR$react.Fragment, null, /*#__PURE__*/ $ggPfR$react.createElement($d7b21827f6622ba3$export$2b77a92f1a5ad772.Header, {
|
|
355
343
|
title: title || '',
|
|
356
344
|
...modalHeaderProps
|
|
357
|
-
}), /*#__PURE__*/ $
|
|
358
|
-
})
|
|
345
|
+
}), /*#__PURE__*/ $ggPfR$react.createElement($d7b21827f6622ba3$export$2b77a92f1a5ad772.Content, modalContentProps, children), /*#__PURE__*/ $ggPfR$react.createElement($d7b21827f6622ba3$export$2b77a92f1a5ad772.Controls, modalControlsProps, cancelButton, confirmButton));
|
|
346
|
+
});
|
|
359
347
|
}
|
|
360
348
|
$78040759975f86df$export$427af6990c8ff682.displayName = 'ModalConfirm';
|
|
361
349
|
|
|
@@ -384,12 +372,11 @@ function $1dc787d4cf525536$var$closeAll() {
|
|
|
384
372
|
render(config);
|
|
385
373
|
await new Promise((resolveDelay)=>setTimeout(resolveDelay, delay)
|
|
386
374
|
);
|
|
387
|
-
$
|
|
375
|
+
$ggPfR$reactdom.unmountComponentAtNode($1dc787d4cf525536$var$getRoot(rootElId));
|
|
388
376
|
$1dc787d4cf525536$var$openModalsIds.delete(rootElId);
|
|
389
377
|
});
|
|
390
378
|
} // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
391
|
-
function $1dc787d4cf525536$var$open(componentRenderer, options = {
|
|
392
|
-
}) {
|
|
379
|
+
function $1dc787d4cf525536$var$open(componentRenderer, options = {}) {
|
|
393
380
|
options = {
|
|
394
381
|
delay: 300,
|
|
395
382
|
...options
|
|
@@ -402,7 +389,7 @@ function $1dc787d4cf525536$var$open(componentRenderer, options = {
|
|
|
402
389
|
isShown: true
|
|
403
390
|
};
|
|
404
391
|
function render({ onClose: onClose , isShown: isShown }) {
|
|
405
|
-
$
|
|
392
|
+
$ggPfR$reactdom.render(componentRenderer({
|
|
406
393
|
onClose: onClose,
|
|
407
394
|
isShown: isShown
|
|
408
395
|
}), rootDom);
|
|
@@ -415,7 +402,7 @@ function $1dc787d4cf525536$var$open(componentRenderer, options = {
|
|
|
415
402
|
render(currentConfig);
|
|
416
403
|
await new Promise((resolveDelay)=>setTimeout(resolveDelay, options.delay)
|
|
417
404
|
);
|
|
418
|
-
$
|
|
405
|
+
$ggPfR$reactdom.unmountComponentAtNode(rootDom);
|
|
419
406
|
rootDom.remove();
|
|
420
407
|
$1dc787d4cf525536$var$openModalsIds.delete(rootElId);
|
|
421
408
|
resolve(arg);
|
|
@@ -436,7 +423,5 @@ const $1dc787d4cf525536$export$e21b828b42c54a37 = {
|
|
|
436
423
|
|
|
437
424
|
|
|
438
425
|
|
|
439
|
-
|
|
440
|
-
|
|
441
426
|
export {$d7b21827f6622ba3$export$2b77a92f1a5ad772 as Modal, $78040759975f86df$export$427af6990c8ff682 as ModalConfirm, $2e16b6f9c0e7012d$export$6da19a24bf249f17 as ModalContent, $12733d8c9bae35ea$export$c63fb08199be8e0e as ModalControls, $08ed4541188cb150$export$f50a68e3694789ee as ModalHeader, $1dc787d4cf525536$export$e21b828b42c54a37 as ModalLauncher};
|
|
442
427
|
//# sourceMappingURL=module.js.map
|