{"version":3,"file":"static/chunks/913-dcd002f1aa8f457e.js","mappings":"6LYsTMA,uNDtSFC,uBVfJ,SAAAC,EAAAC,CAAA,CAAAC,CAAA,EAAuEC,yBAAAA,EAAA,IAAkC,EAAI,EAC7G,gBAAAC,CAAA,EAEA,GADAH,IAAAG,GACAD,CAAA,IAAAA,GAAA,CAAAC,EAAAC,gBAAA,CACA,OAAAH,IAAAE,EAEA,CACA,CCCA,SAAAE,EAAA,GAAAC,CAAA,EACA,UAAAA,EAAAC,OAAA,KAPA,mBAOAC,EANAA,EAMAC,SAAAD,GAJAA,CAAAA,EAAAE,OAAA,CAIAD,CAJA,GAKA,CACA,SAAAE,EAAA,GAAAL,CAAA,EACA,OAASM,EAAAC,WAAiB,CAAAR,KAAAC,GAAAA,EAC1B,gBEZAQ,EAAAC,YAAAC,SAAuDJ,EAAAK,eAAqB,MAC5E,ECAAC,EAAiBC,CAAK,SAAAC,QAAA,kBACtBC,EAAA,EACA,SAAAC,EAAAC,CAAA,EACA,IAAAC,EAAAC,EAAA,CAAsBb,EAAAc,QAAc,CAAAR,KAIpC,OAHEJ,EAAe,KACjBS,GAAAE,EAAA,GAAAE,GAAAC,OAAAP,KACA,EAAG,CAAAE,EAAA,EACHA,GAAAC,CAAAA,EAAA,SAA2CA,EAAG,KAC9C,CCTA,SAAAK,EAAAC,CAAA,EACA,IAAAC,EAAsBnB,EAAAoB,MAAY,CAAAF,GAIlC,OAHElB,EAAAqB,SAAe,MACjBF,EAAArB,OAAA,CAAAoB,CACA,GACSlB,EAAAsB,OAAa,SAAAC,IAAAJ,EAAArB,OAAA,MAAAyB,GAAA,GACtB,gBEJAC,EAAWxB,EAAAyB,UAAgB,EAAAC,EAAAC,KAC3B,IAAUC,SAAAA,CAAA,IAAAC,EAAA,CAAyBH,EACnCI,EAAwB9B,EAAA+B,QAAc,CAAAC,OAAA,CAAAJ,GACtCK,EAAAH,EAAAI,IAAA,CAAAC,GACA,GAAAF,EAAA,CACA,IAAAG,EAAAH,EAAAP,KAAA,CAAAE,QAAA,CACAS,EAAAP,EAAAQ,GAAA,IACA,IAAAL,EAIAM,EAHA,EAAYR,QAAc,CAAAtB,KAAA,CAAA2B,GAAA,EAA+BpC,EAAA+B,QAAc,CAAAS,IAAA,OACxDxC,EAAAyC,cAAoB,CAAAL,GAAAA,EAAAV,KAAA,CAAAE,QAAA,OAKnC,MAA2B,GAAAc,EAAAC,GAAA,EAAGC,EAAA,CAAc,GAAAf,CAAA,CAAAjC,IAAA+B,EAAAC,SAA2C5B,EAAAyC,cAAoB,CAAAL,GAAepC,EAAA6C,YAAkB,CAAAT,EAAA,OAAAC,GAAA,MAC5I,CACA,MAAyB,GAAAK,EAAAC,GAAA,EAAGC,EAAA,CAAc,GAAAf,CAAA,CAAAjC,IAAA+B,EAAAC,SAAAA,CAAA,EAC1C,EACAJ,CAAAA,EAAAsB,WAAA,QACA,IAAAF,EAAgB5C,EAAAyB,UAAgB,EAAAC,EAAAC,KAChC,IAAUC,SAAAA,CAAA,IAAAC,EAAA,CAAyBH,EACnC,GAAM1B,EAAAyC,cAAoB,CAAAb,GAAA,KAyC1BmB,EACAC,EAzCA,IAAAC,EA0CA,CAFAF,EAAAG,OAAAC,wBAAA,CAAAC,EAAA1B,KAAA,SAAA2B,MACA,mBAAAN,GAAAA,EAAAO,cAAA,CAEAF,EAAAxD,GAAA,CAGAmD,CADAA,EAAAG,OAAAC,wBAAA,CA7CAvB,EA6CA,QAAAyB,GAAA,GACA,mBAAAN,GAAAA,EAAAO,cAAA,CAEAF,EAAA1B,KAAA,CAAA9B,GAAA,CAEAwD,EAAA1B,KAAA,CAAA9B,GAAA,EAAAwD,EAAAxD,GAAA,CAjDA,OAAWI,EAAA6C,YAAkB,CAAAjB,EAAA,CAC7B,GAAA2B,SAcA1B,CAAA,CAAA2B,CAAA,EACA,IAAAC,EAAA,CAA0B,GAAAD,CAAA,EAC1B,QAAAE,KAAAF,EAAA,CACA,IAAAG,EAAA9B,CAAA,CAAA6B,EAAA,CACAE,EAAAJ,CAAA,CAAAE,EAAA,CACA,WAAAG,IAAA,CAAAH,GAEAC,GAAAC,EACAH,CAAA,CAAAC,EAAA,KAAAnC,KACAqC,KAAArC,GACAoC,KAAApC,EACA,EACQoC,GACRF,CAAAA,CAAA,CAAAC,EAAA,CAAAC,CAAA,EAEMD,UAAAA,EACND,CAAA,CAAAC,EAAA,EAAkC,GAAAC,CAAA,IAAAC,CAAA,EAC5B,cAAAF,GACND,CAAAA,CAAA,CAAAC,EAAA,EAAAC,EAAAC,EAAA,CAAAE,MAAA,CAAA3D,SAAA4D,IAAA,MAEA,CACA,OAAW,GAAAlC,CAAA,IAAA4B,CAAA,CACX,EApCA5B,EAAAD,EAAAF,KAAA,EAEA9B,IAAA+B,EAA0BlC,EAAWkC,EAAAsB,GAAAA,CACrC,EACA,CACA,OAASjD,EAAA+B,QAAc,CAAAtB,KAAA,CAAAmB,GAAA,EAAuB5B,EAAA+B,QAAc,CAAAS,IAAA,WAC5D,EACAI,CAAAA,EAAAE,WAAA,aACA,IAAAkB,EAAA,EAAmBpC,SAAAA,CAAA,CAAU,GACJ,GAAAc,EAAAC,GAAA,EAAID,EAAAuB,QAAQ,EAAIrC,SAAAA,CAAA,GAEzC,SAAAO,EAAAI,CAAA,EACA,OAASvC,EAAAyC,cAAoB,CAAAF,IAAAA,EAAA2B,IAAA,GAAAF,CAC7B,CClBA,IAAAG,EAAAC,CAjBA,IACA,SACA,MACA,OACA,KACA,KACA,MACA,QACA,QACA,KACA,MACA,KACA,IACA,OACA,MACA,KACA,CACAC,MAAA,EAAAC,EAAAzE,KACA,IAAA0E,EAAevE,EAAAyB,UAAgB,EAAAC,EAAAC,KAC/B,IAAY6C,QAAAA,CAAA,IAAAC,EAAA,CAA6B/C,EACzCgD,EAAAF,EAA2BhD,EAAI3B,EAI/B,MAHA,oBAAA8E,QACAA,CAAAA,MAAA,CAAAC,OAAAC,GAAA,kBAE2B,GAAAnC,EAAAC,GAAA,EAAG+B,EAAA,CAAS,GAAAD,CAAA,CAAA7E,IAAA+B,CAAA,EACvC,GAEA,OADA4C,EAAAzB,WAAA,cAAkCjD,EAAK,EACvC,CAAW,GAAAyE,CAAA,EAAAzE,EAAA,CAAA0E,CAAA,CACX,EAAC,IEtBKO,EAAiB,0BAMjBC,EAAgCC,EAAAA,aAAA,CAAc,CAClDC,OAAQ,IAAIC,IACZC,uCAAwC,IAAID,IAC5CE,SAAU,IAAIF,GAChB,GAsCMG,EAAyBL,EAAAA,UAAA,CAC7B,CAACtD,EAAOC,SAYuC2D,EAAvBzF,EAXtB,GAAM,CACJ0F,4BAAAA,EAA8B,GAC9BC,gBAAAA,CAAA,CACAC,qBAAAA,CAAA,CACAC,eAAAA,CAAA,CACAC,kBAAAA,CAAA,CACAC,UAAAA,CAAA,CACA,GAAGC,EACL,CAAInE,EACEoE,EAAgBd,EAAAA,UAAA,CAAWD,GAC3B,CAAClF,EAAMkG,EAAO,CAAUf,EAAAA,QAAA,CAAyC,MACjEgB,EAAgBnG,OAAAA,CAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAMmG,aAAA,GAANnG,KAAAA,IAAAA,EAAAA,EAAAA,OAAuByF,CAAAA,EAAAA,UAAAA,GAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAYlF,QAAA,CACnD,EAAG6F,EAAK,CAAUjB,EAAAA,QAAA,CAAS,CAAC,GAC5BkB,EAAenG,EAAgB4B,EAAc,GAAUoE,EAAQlG,IAC/DoF,EAASkB,MAAMC,IAAA,CAAKN,EAAQb,MAAM,EAClC,CAACoB,EAA4C,CAAI,IAAIP,EAAQX,sCAAsC,EAAEmB,KAAA,CAAM,IAC3GC,EAAoDtB,EAAOuB,OAAA,CAAQH,GACnEI,EAAQ5G,EAAOoF,EAAOuB,OAAA,CAAQ3G,GAAQ,GACtC6G,EAA8BZ,EAAQX,sCAAA,CAAuCwB,IAAA,CAAO,EACpFC,EAAyBH,GAASF,EAElCM,EAAqBC,SA0I7BrB,CAAA,MAC0BH,MAA1BU,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAA0BV,OAAAA,CAAAA,EAAAA,UAAAA,GAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAYlF,QAAA,CAEhC2G,EAA2B9F,EAAewE,GAC1CuB,EAAoChC,EAAAA,MAAA,CAAO,IAC3CiC,EAAuBjC,EAAAA,MAAA,CAAO,KAAO,GAiE3C,OA/DMA,EAAAA,SAAA,CAAU,KACd,IAAMkC,EAAoB,IACxB,GAAI3H,EAAM4H,MAAA,EAAU,CAACH,EAA4BlH,OAAA,CAAS,CAGxD,IAASsH,EAAT,WACEC,EA7NmB,sCA+NjBN,EACAO,EACA,CAAEC,SAAU,EAAK,EAErB,EATMD,EAAc,CAAEE,cAAejI,CAAM,CAuBvCA,CAAsB,UAAtBA,EAAMkI,WAAA,EACRzB,EAAc0B,mBAAA,CAAoB,QAAST,EAAenH,OAAO,EACjEmH,EAAenH,OAAA,CAAUsH,EACzBpB,EAAc2B,gBAAA,CAAiB,QAASV,EAAenH,OAAA,CAAS,CAAE8H,KAAM,EAAK,IAE7ER,GAEJ,MAGEpB,EAAc0B,mBAAA,CAAoB,QAAST,EAAenH,OAAO,CAEnEkH,CAAAA,EAA4BlH,OAAA,CAAU,EACxC,EAcM+H,EAAUlD,OAAOmD,UAAA,CAAW,KAChC9B,EAAc2B,gBAAA,CAAiB,cAAeT,EAChD,EAAG,GACH,MAAO,KACLvC,OAAOoD,YAAA,CAAaF,GACpB7B,EAAc0B,mBAAA,CAAoB,cAAeR,GACjDlB,EAAc0B,mBAAA,CAAoB,QAAST,EAAenH,OAAO,CACnE,CACF,EAAG,CAACkG,EAAee,EAAyB,EAErC,CAELiB,qBAAsB,IAAOhB,EAA4BlH,OAAA,CAAU,EACrE,CACF,EApNqD,IAC/C,IAAMqH,EAAS5H,EAAM4H,MAAA,CACfc,EAAwB,IAAInC,EAAQV,QAAQ,EAAE8C,IAAA,CAAK,GAAYC,EAAOC,QAAA,CAASjB,KAChFP,GAA0BqB,IAC/BxC,MAAAA,GAAAA,EAAuBlG,GACvBoG,MAAAA,GAAAA,EAAoBpG,GACfA,EAAMC,gBAAA,EAAkBoG,MAAAA,GAAAA,IAC/B,EAAGI,GAEGqC,EAAeC,SAkNvB5C,CAAA,MAC0BJ,MAA1BU,EAAAA,UAAAA,MAAAA,CAAAA,GAAAA,KAAAA,IAAAA,SAAAA,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA,EAAAA,CAA0BV,OAAAA,CAAAA,EAAAA,UAAAA,GAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAYlF,QAAA,CAEhCmI,EAAqBtH,EAAeyE,GACpC8C,EAAkCxD,EAAAA,MAAA,CAAO,IAe/C,OAbMA,EAAAA,SAAA,CAAU,KACd,IAAMyD,EAAc,IACdlJ,EAAM4H,MAAA,EAAU,CAACqB,EAA0B1I,OAAA,EAE7CuH,EA1Sc,gCA0S8BkB,EADxB,CAAEf,cAAejI,CAAM,EACkC,CAC3EgI,SAAU,EACZ,EAEJ,EAEA,OADAvB,EAAc2B,gBAAA,CAAiB,UAAWc,GACnC,IAAMzC,EAAc0B,mBAAA,CAAoB,UAAWe,EAC5D,EAAG,CAACzC,EAAeuC,EAAmB,EAE/B,CACLG,eAAgB,IAAOF,EAA0B1I,OAAA,CAAU,GAC3D6I,cAAe,IAAOH,EAA0B1I,OAAA,CAAU,EAC5D,CACF,EAzOyC,IACnC,IAAMqH,EAAS5H,EAAM4H,MAAA,CACG,IAAIrB,EAAQV,QAAQ,EAAE8C,IAAA,CAAK,GAAYC,EAAOC,QAAA,CAASjB,MAE/EzB,MAAAA,GAAAA,EAAiBnG,GACjBoG,MAAAA,GAAAA,EAAoBpG,GACfA,EAAMC,gBAAA,EAAkBoG,MAAAA,GAAAA,IAC/B,EAAGI,GAsDH,OApDA4C,SDlGJC,CAAA,CAAA7C,EAAAV,YAAAlF,QAAA,EACA,IAAAoF,EAA0BvE,EAAc4H,GACtC7I,EAAAqB,SAAe,MACjB,IAAAyH,EAAA,IACA,WAAAvJ,EAAAwJ,GAAA,EACAvD,EAAAjG,EAEA,EAEA,OADAyG,EAAA2B,gBAAA,WAAAmB,EAAA,CAA+DE,QAAA,KAC/D,IAAAhD,EAAA0B,mBAAA,WAAAoB,EAAA,CAA+EE,QAAA,IAC/E,EAAG,CAAAxD,EAAAQ,EAAA,CACH,ECuFqB,IACQS,IAAUX,EAAQb,MAAA,CAAO0B,IAAA,CAAO,IAEvDnB,MAAAA,GAAAA,EAAkBjG,GACd,CAACA,EAAMC,gBAAA,EAAoBoG,IAC7BrG,EAAM0J,cAAA,GACNrD,KAEJ,EAAGI,GAEGhB,EAAAA,SAAA,CAAU,KACd,GAAKnF,EAUL,OATI0F,IAC0D,IAAxDO,EAAQX,sCAAA,CAAuCwB,IAAA,GACjDzH,EAA4B8G,EAAckD,IAAA,CAAKC,KAAA,CAAMC,aAAA,CACrDpD,EAAckD,IAAA,CAAKC,KAAA,CAAMC,aAAA,CAAgB,QAE3CtD,EAAQX,sCAAA,CAAuCkE,GAAA,CAAIxJ,IAErDiG,EAAQb,MAAA,CAAOoE,GAAA,CAAIxJ,GACnByJ,IACO,KAEH/D,GACAO,IAAAA,EAAQX,sCAAA,CAAuCwB,IAAA,EAE/CX,CAAAA,EAAckD,IAAA,CAAKC,KAAA,CAAMC,aAAA,CAAgBlK,CAAAA,CAE7C,CACF,EAAG,CAACW,EAAMmG,EAAeT,EAA6BO,EAAQ,EAQxDd,EAAAA,SAAA,CAAU,IACP,KACAnF,IACLiG,EAAQb,MAAA,CAAOsE,MAAA,CAAO1J,GACtBiG,EAAQX,sCAAA,CAAuCoE,MAAA,CAAO1J,GACtDyJ,IACF,EACC,CAACzJ,EAAMiG,EAAQ,EAEZd,EAAAA,SAAA,CAAU,KACd,IAAMwE,EAAe,IAAMvD,EAAM,CAAC,GAElC,OADA7F,SAASuH,gBAAA,CAAiB7C,EAAgB0E,GACnC,IAAMpJ,SAASsH,mBAAA,CAAoB5C,EAAgB0E,EAC5D,EAAG,EAAE,EAGH7G,CAAAA,EAAAA,EAAAA,GAAAA,EAACwB,EAAUsF,GAAA,CAAV,CACE,GAAG5D,CAAA,CACJjG,IAAKsG,EACLiD,MAAO,CACLC,cAAe1C,EACXE,EACE,OACA,OACF,OACJ,GAAGlF,EAAMyH,KAAA,EAEXT,eAAgBvJ,EAAqBuC,EAAMgH,cAAA,CAAgBL,EAAaK,cAAc,EACtFC,cAAexJ,EAAqBuC,EAAMiH,aAAA,CAAeN,EAAaM,aAAa,EACnFX,qBAAsB7I,EACpBuC,EAAMsG,oBAAA,CACNnB,EAAmBmB,oBAAA,CACrB,EAGN,GA0JF,SAASsB,IACP,IAAM/J,EAAQ,IAAImK,YAAY5E,GAC9B1E,SAASuJ,aAAA,CAAcpK,EACzB,CAEA,SAAS8H,EACPuC,CAAA,CACAC,CAAA,CACAC,CAAA,CACAC,CAAW,KAAX,CAAExC,SAAAA,CAAA,CAAS,CAAXwC,EAEM5C,EAAS2C,EAAOtC,aAAA,CAAcL,MAAA,CAC9B5H,EAAQ,IAAImK,YAAYE,EAAM,CAAEI,QAAS,GAAOC,WAAY,GAAMH,OAAAA,CAAO,IAC3ED,GAAS1C,EAAOQ,gBAAA,CAAiBiC,EAAMC,EAA0B,CAAEjC,KAAM,EAAK,GAE9EL,GAC0BJ,GFnTlB+C,EAAAC,SAAkB,KAAAhD,EAAAwC,aAAA,CEmTQpK,IAEpC4H,EAAOwC,aAAA,CAAcpK,EAEzB,CA3KA8F,EAAiBvC,WAAA,CArKc,mBAqM/BsH,EArBqCpF,UAAA,CAGnC,CAACtD,EAAOC,KACR,IAAMmE,EAAgBd,EAAAA,UAAA,CAAWD,GAC3BnF,EAAYoF,EAAAA,MAAA,CAAsC,MAClDkB,EAAenG,EAAgB4B,EAAc/B,GAYnD,OAVMoF,EAAAA,SAAA,CAAU,KACd,IAAMnF,EAAOD,EAAIE,OAAA,CACjB,GAAID,EAEF,OADAiG,EAAQV,QAAA,CAASiE,GAAA,CAAIxJ,GACd,KACLiG,EAAQV,QAAA,CAASmE,MAAA,CAAO1J,EAC1B,CAEJ,EAAG,CAACiG,EAAQV,QAAQ,CAAC,EAEdzC,CAAAA,EAAAA,EAAAA,GAAAA,EAACwB,EAAUsF,GAAA,CAAV,CAAe,GAAG/H,CAAA,CAAO9B,IAAKsG,CAAA,EACxC,GAEuBpD,WAAA,CA1BH,yBCjLpB,IAAMuH,EAAqB,8BACrBC,EAAuB,gCACvBC,EAAgB,CAAEP,QAAS,GAAOC,WAAY,EAAK,EAwCnDO,EAAmBxF,EAAAA,UAAA,CAA+C,CAACtD,EAAOC,KAC9E,GAAM,CACJ8I,KAAAA,EAAO,GACPC,QAAAA,EAAU,GACVC,iBAAkBC,CAAA,CAClBC,mBAAoBC,CAAA,CACpB,GAAGC,EACL,CAAIrJ,EACE,CAACsJ,EAAWC,EAAY,CAAUjG,EAAAA,QAAA,CAA6B,MAC/D2F,EAAmB1J,EAAe2J,GAClCC,EAAqB5J,EAAe6J,GACpCI,EAA8BlG,EAAAA,MAAA,CAA2B,MACzDkB,EAAenG,EAAgB4B,EAAc,GAAUsJ,EAAapL,IAEpEsL,EAAmBnG,EAAAA,MAAA,CAAO,CAC9BoG,OAAQ,GACRC,QACE,KAAKD,MAAA,CAAS,EAChB,EACAE,SACE,KAAKF,MAAA,CAAS,EAChB,CACF,GAAGtL,OAAA,CAGGkF,EAAAA,SAAA,CAAU,KACd,GAAI0F,EAAS,CACX,IAASa,EAAT,SAAuBhM,CAAA,EACrB,GAAI4L,EAAWC,MAAA,EAAU,CAACJ,EAAW,OACrC,IAAM7D,EAAS5H,EAAM4H,MAAA,CACjB6D,EAAU5C,QAAA,CAASjB,GACrB+D,EAAsBpL,OAAA,CAAUqH,EAEhCqE,EAAMN,EAAsBpL,OAAA,CAAS,CAAE2L,OAAQ,EAAK,EAExD,EAESC,EAAT,SAAwBnM,CAAA,EACtB,GAAI4L,EAAWC,MAAA,EAAU,CAACJ,EAAW,OACrC,IAAMW,EAAgBpM,EAAMoM,aAAA,QAYxBA,GAICX,EAAU5C,QAAA,CAASuD,IACtBH,EAAMN,EAAsBpL,OAAA,CAAS,CAAE2L,OAAQ,EAAK,EAExD,EAaArL,SAASuH,gBAAA,CAAiB,UAAW4D,GACrCnL,SAASuH,gBAAA,CAAiB,WAAY+D,GACtC,IAAME,EAAmB,IAAIC,iBAV7B,SAAyBC,CAAA,EAEvB,GAAIC,SAD4BC,aAAA,GACT5L,SAAS8I,IAAA,CAChC,QAAW+C,KAAYH,EACjBG,EAASC,YAAA,CAAaC,MAAA,CAAS,GAAGX,EAAMR,EAEhD,GAOA,OAFIA,GAAWY,EAAiBQ,OAAA,CAAQpB,EAAW,CAAEqB,UAAW,GAAMC,QAAS,EAAK,GAE7E,KACLlM,SAASsH,mBAAA,CAAoB,UAAW6D,GACxCnL,SAASsH,mBAAA,CAAoB,WAAYgE,GACzCE,EAAiBW,UAAA,EACnB,CACF,CACF,EAAG,CAAC7B,EAASM,EAAWG,EAAWC,MAAM,CAAC,EAEpCpG,EAAAA,SAAA,CAAU,KACd,GAAIgG,EAAW,CACbwB,EAAiBnD,GAAA,CAAI8B,GACrB,IAAMsB,EAA2BrM,SAAS4L,aAAA,CAG1C,GAAI,CAFwBhB,EAAU5C,QAAA,CAASqE,GAErB,CACxB,IAAMC,EAAa,IAAIhD,YAAYW,EAAoBE,GACvDS,EAAUrD,gBAAA,CAAiB0C,EAAoBM,GAC/CK,EAAUrB,aAAA,CAAc+C,GACnBA,EAAWlN,gBAAA,GACdmN,SA2EUC,CAAA,KAA2B,CAAEnB,OAAAA,EAAS,GAAM,CAAjBoB,UAAAV,MAAA,IAAAU,KAAA,IAAAA,SAAA,IAAAA,SAAA,IAAqB,CAAC,EAC7DJ,EAA2BrM,SAAS4L,aAAA,CAC1C,QAAWc,KAAaF,EAEtB,GADApB,EAAMsB,EAAW,CAAErB,OAAAA,CAAO,GACtBrL,SAAS4L,aAAA,GAAkBS,EAA0B,MAE7D,EAsHSM,EAvM8C/B,GAuMxClH,MAAA,CAAO,GAAUkJ,MAAAA,EAAKC,OAAA,EAvM+B,CAAExB,OAAQ,EAAK,GACrErL,SAAS4L,aAAA,GAAkBS,GAC7BjB,EAAMR,GAGZ,CAEA,MAAO,KACLA,EAAUtD,mBAAA,CAAoB2C,EAAoBM,GAKlD7C,WAAW,KACT,IAAMoF,EAAe,IAAIxD,YAAYY,EAAsBC,GAC3DS,EAAUrD,gBAAA,CAAiB2C,EAAsBO,GACjDG,EAAUrB,aAAA,CAAcuD,GACnBA,EAAa1N,gBAAA,EAChBgM,EAAMiB,MAAAA,EAAAA,EAA4BrM,SAAS8I,IAAA,CAAM,CAAEuC,OAAQ,EAAK,GAGlET,EAAUtD,mBAAA,CAAoB4C,EAAsBO,GAEpD2B,EAAiBW,MAAA,CAAOhC,EAC1B,EAAG,EACL,CACF,CACF,EAAG,CAACH,EAAWL,EAAkBE,EAAoBM,EAAW,EAGhE,IAAMrC,EAAsB9D,EAAAA,WAAA,CAC1B,IACE,GAAI,CAACyF,GAAQ,CAACC,GACVS,EAAWC,MAAA,CADQ,OAGvB,IAAMgC,EAAW7N,QAAAA,EAAMwJ,GAAA,EAAiB,CAACxJ,EAAM8N,MAAA,EAAU,CAAC9N,EAAM+N,OAAA,EAAW,CAAC/N,EAAMgO,OAAA,CAC5ExB,EAAiB3L,SAAS4L,aAAA,CAEhC,GAAIoB,GAAYrB,EAAgB,CAC9B,IAAMf,EAAYzL,EAAMiO,aAAA,CAClB,CAACC,EAAOC,EAAI,CAAIC,SA8CJ3C,CAAA,EACxB,IAAM4B,EAAagB,EAAsB5C,GAGzC,MAAO,CAFO6C,EAAYjB,EAAY5B,GACzB6C,EAAYjB,EAAWkB,OAAA,GAAW9C,GAC5B,EAlD0BA,EACLyC,CAAAA,GAASC,EAMrC,EAAOK,QAAA,EAAYhC,IAAmB2B,EAG/BnO,EAAMwO,QAAA,EAAYhC,IAAmB0B,IAC9ClO,EAAM0J,cAAA,GACFwB,GAAMe,EAAMkC,EAAM,CAAEjC,OAAQ,EAAK,KAJrClM,EAAM0J,cAAA,GACFwB,GAAMe,EAAMiC,EAAO,CAAEhC,OAAQ,EAAK,IAJpCM,IAAmBf,GAAWzL,EAAM0J,cAAA,EAU5C,CACF,EACA,CAACwB,EAAMC,EAASS,EAAWC,MAAM,GAGnC,MACEzI,CAAAA,EAAAA,EAAAA,GAAAA,EAACwB,EAAUsF,GAAA,CAAV,CAAcuE,SAAU,GAAK,GAAGjD,CAAA,CAAYnL,IAAKsG,EAAc+H,UAAWnF,CAAA,EAE/E,GAwCA,SAAS8E,EAAsB5C,CAAA,EAC7B,IAAMkD,EAAuB,EAAC,CACxBC,EAAS/N,SAASgO,gBAAA,CAAiBpD,EAAWqD,WAAWC,YAAA,CAAc,CAC3EC,WAAY,IACV,IAAMC,EAAgB3O,UAAAA,EAAKoN,OAAA,EAAuBpN,WAAAA,EAAKqE,IAAA,QACvD,EAASuK,QAAA,EAAY5O,EAAK6O,MAAA,EAAUF,EAAsBH,WAAWM,WAAA,CAI9D9O,EAAKmO,QAAA,EAAY,EAAIK,WAAWO,aAAA,CAAgBP,WAAWM,WAAA,CAEtE,GACA,KAAOR,EAAOU,QAAA,IAAYX,EAAMY,IAAA,CAAKX,EAAOY,WAA0B,EAGtE,OAAOb,CACT,CAMA,SAASL,EAAYmB,CAAA,CAAyBhE,CAAA,EAC5C,QAAW5H,KAAW4L,EAEpB,GAAI,CAACC,SAISpP,CAAA,CAAmBkK,CAAO,KAAP,CAAEmF,KAAAA,CAAA,CAAK,CAAPnF,EACnC,GAAIoF,WAAAA,iBAAiBtP,GAAMuP,UAAA,CAAyB,MAAO,GAC3D,KAEE,GAAIF,CAAAA,KAAS,IAATA,GAAsBrP,IAASqP,CAAAA,GAFxB,CAGX,GAAIC,SAAAA,iBAAiBtP,GAAMwP,OAAA,CAAoB,MAAO,GACtDxP,EAAOA,EAAKyP,aAAA,CAEd,MAAO,EACT,EAbkBlM,EAAS,CAAE8L,KAAMlE,CAAU,GAAI,OAAO5H,CAExD,CAiBA,SAASoI,EAAMpI,CAAA,KAAkC,CAAEqI,OAAAA,EAAS,GAAM,CAAjBoB,UAAAV,MAAA,IAAAU,KAAA,IAAAA,SAAA,IAAAA,SAAA,IAAqB,CAAC,EAErE,GAAIzJ,GAAWA,EAAQoI,KAAA,CAAO,KANLpI,EAOvB,IAAMqJ,EAA2BrM,SAAS4L,aAAA,CAE1C5I,EAAQoI,KAAA,CAAM,CAAE+D,cAAe,EAAK,GAEhCnM,IAAYqJ,GAVXrJ,CADkBA,EAWuCA,aAVtCoM,kBAAoB,WAAYpM,GAUkBqI,GACxErI,EAAQqI,MAAA,EACZ,CACF,CA5FAjB,EAAW1H,WAAA,CAhMc,aAmSzB,IAAM0J,GAIAvN,EAAyB,EAAC,CAEvB,CACLoK,IAAI8B,CAAA,EAEF,IAAMsE,EAAmBxQ,CAAA,CAAM,EAAC,CAC5BkM,IAAesE,GACjBA,CAAAA,MAAAA,GAAAA,EAAkBpE,KAAA,IAIpBpM,CADAA,EAAQyQ,EAAYzQ,EAAOkM,EAAAA,EACrBwE,OAAA,CAAQxE,EAChB,EAEAgC,OAAOhC,CAAA,MAELlM,CAAO,QAAPA,CAAAA,EAAAA,CADAA,EAAQyQ,EAAYzQ,EAAOkM,EAAAA,CAC3B,CAAM,EAAC,GAAPlM,KAAAA,IAAAA,GAAAA,EAAUqM,MAAA,EACZ,CACF,GAGF,SAASoE,EAAeE,CAAA,CAAY5C,CAAA,EAClC,IAAM6C,EAAe,IAAID,EAAK,CACxBnJ,EAAQoJ,EAAarJ,OAAA,CAAQwG,GAInC,OAHc,KAAVvG,GACFoJ,EAAaC,MAAA,CAAOrJ,EAAO,GAEtBoJ,CACT,CC9TA,IAAME,EAAe/K,EAAAA,UAAA,CAAuC,CAACtD,EAAOC,SAInB2D,EAAAA,EAH/C,GAAM,CAAE0F,UAAWgF,CAAA,CAAe,GAAGC,EAAY,CAAIvO,EAC/C,CAACwO,EAASC,EAAU,CAAUnL,EAAAA,QAAA,CAAS,IAC7C3E,EAAgB,IAAM8P,EAAW,IAAO,EAAE,EAC1C,IAAMnF,EAAYgF,GAAkBE,GAAAA,CAAAA,OAAW5K,CAAAA,EAAAA,UAAAA,GAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAYlF,QAAA,GAAZkF,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAsB4D,IAAA,EACrE,OAAO8B,EACHoF,EAAAA,YAAS,CAAazN,CAAAA,EAAAA,EAAAA,GAAAA,EAACwB,EAAUsF,GAAA,CAAV,CAAe,GAAGwG,CAAA,CAAarQ,IAAK+B,CAAA,GAAkBqJ,GAC7E,IACN,EAEA+E,CAAAA,EAAOjN,WAAA,CArBa,SCCpB,IAAMuN,EAAoC,QAoK3BnN,EAOJA,MAPLH,EACAC,EApKJ,GAAM,CAAEsN,QAAAA,CAAA,CAAS1O,SAAAA,CAAA,CAAS,CAAIF,EACxB6O,EAAWC,SAmBEF,CAAA,MCnBnBG,EACAC,EDmBA,GAAM,CAAC7Q,EAAMkG,EAAO,CAAU4K,EAAAA,QAAA,GACxBC,EAAkBD,EAAAA,MAAA,CAA4B,CAAC,GAC/CE,EAAuBF,EAAAA,MAAA,CAAOL,GAC9BQ,EAA6BH,EAAAA,MAAA,CAAe,QAE5C,CAACI,EAAOC,EAAI,ECzBlBP,EDwBqBH,EAAU,UAAY,YCvB3CI,EDwBoD,CAClDR,QAAS,CACPe,QAAS,YACTC,cAAe,kBACjB,EACAC,iBAAkB,CAChBC,MAAO,UACPC,cAAe,WACjB,EACAC,UAAW,CACTF,MAAO,SACT,CACF,EClCapM,EAAAA,UAAA,CAAW,CAAC+L,EAAwBxR,KAC/C,IAAMgS,EAAab,CAAA,CAAQK,EAAK,CAAUxR,EAAK,CAC/C,OAAOgS,MAAAA,EAAAA,EAAaR,CACtB,EAAGN,IDsIH,OArGME,EAAAA,SAAA,CAAU,KACd,IAAMa,EAAuBC,EAAiBb,EAAU9Q,OAAO,CAC/DgR,CAAAA,EAAqBhR,OAAA,CAAUiR,YAAAA,EAAsBS,EAAuB,MAC9E,EAAG,CAACT,EAAM,EAEV1Q,EAAgB,KACd,IAAMqR,EAASd,EAAU9Q,OAAA,CACnB6R,EAAad,EAAe/Q,OAAA,CAGlC,GAF0B6R,IAAerB,EAElB,CACrB,IAAMsB,EAAoBd,EAAqBhR,OAAA,CACzC0R,EAAuBC,EAAiBC,GAE1CpB,EACFU,EAAK,SACIQ,SAAAA,GAAmCE,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQrC,OAAA,IAAY,OAGhE2B,EAAK,WAUDW,GAFgBC,IAAsBJ,EAGxCR,EAAK,iBAELA,EAAK,WAITH,EAAe/Q,OAAA,CAAUwQ,CAC3B,CACF,EAAG,CAACA,EAASU,EAAK,EAElB3Q,EAAgB,KACd,GAAIR,EAAM,KAEYA,MADhBgS,EACJ,IAAMC,EAAcjS,OAAAA,CAAAA,EAAAA,EAAKmG,aAAA,CAAc+L,WAAA,GAAnBlS,KAAAA,IAAAA,EAAAA,EAAkC8E,OAMhDqN,EAAqB,IAEzB,IAAMC,EAAqBT,EADmBZ,EAAU9Q,OAAO,EACfoS,QAAA,CAAS3S,EAAM4S,aAAa,EAC5E,GAAI5S,EAAM4H,MAAA,GAAWtH,GAAQoS,IAW3BjB,EAAK,iBACD,CAACH,EAAe/Q,OAAA,EAAS,CAC3B,IAAMsS,EAAkBvS,EAAKsJ,KAAA,CAAMkJ,iBAAA,CACnCxS,EAAKsJ,KAAA,CAAMkJ,iBAAA,CAAoB,WAK/BR,EAAYC,EAAYhK,UAAA,CAAW,KACI,aAAjCjI,EAAKsJ,KAAA,CAAMkJ,iBAAA,EACbxS,CAAAA,EAAKsJ,KAAA,CAAMkJ,iBAAA,CAAoBD,CAAAA,CAEnC,EACF,CAEJ,EACME,EAAuB,IACvB/S,EAAM4H,MAAA,GAAWtH,GAEnBiR,CAAAA,EAAqBhR,OAAA,CAAU2R,EAAiBb,EAAU9Q,OAAO,EAErE,EAIA,OAHAD,EAAK8H,gBAAA,CAAiB,iBAAkB2K,GACxCzS,EAAK8H,gBAAA,CAAiB,kBAAmBqK,GACzCnS,EAAK8H,gBAAA,CAAiB,eAAgBqK,GAC/B,KACLF,EAAY/J,YAAA,CAAa8J,GACzBhS,EAAK6H,mBAAA,CAAoB,iBAAkB4K,GAC3CzS,EAAK6H,mBAAA,CAAoB,kBAAmBsK,GAC5CnS,EAAK6H,mBAAA,CAAoB,eAAgBsK,EAC3C,CACF,CAGEhB,EAAK,gBAET,EAAG,CAACnR,EAAMmR,EAAK,EAER,CACLuB,UAAW,CAAC,UAAW,mBAAkB,CAAEL,QAAA,CAASnB,GACpDnR,IAAW+Q,EAAAA,WAAA,CAAY,IACjB9Q,GAAM+Q,CAAAA,EAAU9Q,OAAA,CAAUqP,iBAAiBtP,EAAAA,EAC/CkG,EAAQlG,EACV,EAAG,EAAE,CACP,CACF,EAnJ+ByQ,GAEvB/N,EACJ,mBAAOX,EACHA,EAAS,CAAE0O,QAASC,EAASgC,SAAA,GACvB5B,EAAAA,QAAA,CAASnO,IAAA,CAAKZ,GAGpBhC,EAAMG,EAAgBwQ,EAAS3Q,GAAA,CA4JrC,CAFImD,EAAAA,OAASG,CAAAA,EAAAA,OAAOC,wBAAA,CAAyBC,EAAQ1B,KAAA,CAAO,SAA/CwB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAuDG,GAAA,GAC5C,mBAAoBN,GAAUA,EAAOO,cAAA,CAEnDF,EAAgBxD,GAAA,CAKhBmD,CADVA,EAAAA,OAASG,CAAAA,EAAAA,OAAOC,wBAAA,CAjKwCZ,EAiKN,SAAzCW,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAiDG,GAAA,GACtC,mBAAoBN,GAAUA,EAAOO,cAAA,CAEhDF,EAAQ1B,KAAA,CAAM9B,GAAA,CAIhBwD,EAAQ1B,KAAA,CAAM9B,GAAA,EAAQwD,EAAgBxD,GAAA,EAtK7C,MAAO4S,YADY,OAAO5Q,GACL2O,EAASgC,SAAA,CAAkB5B,EAAAA,YAAA,CAAapO,EAAO,CAAE3C,IAAAA,CAAI,GAAK,IACjF,EA4IA,SAAS6R,EAAiBC,CAAA,EACxB,MAAOA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQS,aAAA,GAAiB,MAClC,CA5IA9B,EAASvN,WAAA,CAAc,WEtBvB,IAAIrC,EAAQ,EA2BZ,SAASgS,IACP,IAAMrP,EAAUhD,SAASsS,aAAA,CAAc,QAOvC,OANAtP,EAAQuP,YAAA,CAAa,yBAA0B,IAC/CvP,EAAQ4K,QAAA,CAAW,EACnB5K,EAAQ+F,KAAA,CAAMyJ,OAAA,CAAU,OACxBxP,EAAQ+F,KAAA,CAAM0J,OAAA,CAAU,IACxBzP,EAAQ+F,KAAA,CAAM2J,QAAA,CAAW,QACzB1P,EAAQ+F,KAAA,CAAMC,aAAA,CAAgB,OACvBhG,CACT,gBChCA2P,EAAA,IAAAC,QACAC,EAAA,IAAAD,QACAE,EAAA,GACAC,EAAA,EACAC,EAAA,SAAAvT,CAAA,EACA,OAAAA,GAAAA,CAAAA,EAAAwT,IAAA,EAAAD,EAAAvT,EAAAyT,UAAA,EACA,EAwBAC,EAAA,SAAAC,CAAA,CAAAF,CAAA,CAAAG,CAAA,CAAAC,CAAA,EACA,IAAAC,EAvBAA,CAuBAxN,MAAAyN,OAAA,CAAAJ,GAAAA,EAAA,CAAAA,EAAA,EAtBAlR,GAAA,UAAA6E,CAAA,EACA,GAAA0M,EAAAzL,QAAA,CAAAjB,GACA,OAAAA,EAEA,IAAA2M,EAAAV,EAAAjM,UACA,GAAA0M,EAAAzL,QAAA,CAAA0L,GACAA,GAEAC,QAAAC,KAAA,eAAA7M,EAAA,0BAcAmM,EAdA,mBACA,KACA,GACAxP,MAAA,UAAAmQ,CAAA,EAA+B,MAAA9T,CAAAA,CAAA8T,CAAA,EAY/Bf,CAAAA,CAAA,CAAAO,EAAA,EACAP,CAAAA,CAAA,CAAAO,EAAA,KAAAT,OAAA,EAEA,IAAAkB,EAAAhB,CAAA,CAAAO,EAAA,CACAU,EAAA,GACAC,EAAA,IAAAlP,IACAmP,EAAA,IAAAnP,IAAAyO,GACAW,EAAA,SAAAC,CAAA,EACA,CAAAA,GAAAH,EAAAI,GAAA,CAAAD,KAGAH,EAAA/K,GAAA,CAAAkL,GACAD,EAAAC,EAAAjB,UAAA,EACA,EACAK,EAAAhU,OAAA,CAAA2U,GACA,IAAAG,EAAA,SAAAZ,CAAA,EACA,CAAAA,GAAAQ,EAAAG,GAAA,CAAAX,IAGA1N,MAAAuO,SAAA,CAAA/U,OAAA,CAAAgV,IAAA,CAAAd,EAAAjS,QAAA,UAAA/B,CAAA,EACA,GAAAuU,EAAAI,GAAA,CAAA3U,GACA4U,EAAA5U,QAGA,IACA,IAAA+U,EAAA/U,EAAAgV,YAAA,CAAAnB,GACAoB,EAAAF,OAAAA,GAAAA,UAAAA,EACAG,EAAA,CAAAhC,EAAA1P,GAAA,CAAAxD,IAAA,KACAmV,EAAA,CAAAd,EAAA7Q,GAAA,CAAAxD,IAAA,KACAkT,EAAAkC,GAAA,CAAApV,EAAAkV,GACAb,EAAAe,GAAA,CAAApV,EAAAmV,GACAb,EAAArF,IAAA,CAAAjP,GACA,IAAAkV,GAAAD,GACA7B,EAAAgC,GAAA,CAAApV,EAAA,IAEA,IAAAmV,GACAnV,EAAA8S,YAAA,CAAAc,EAAA,QAEAqB,GACAjV,EAAA8S,YAAA,CAAAe,EAAA,OAEA,CACA,MAAAwB,EAAA,CACAnB,QAAAC,KAAA,mCAAAnU,EAAAqV,EACA,CAEA,EACA,EAIA,OAHAT,EAAAnB,GACAc,EAAAe,KAAA,GACAhC,IACA,WACAgB,EAAAxU,OAAA,UAAAE,CAAA,EACA,IAAAkV,EAAAhC,EAAA1P,GAAA,CAAAxD,GAAA,EACAmV,EAAAd,EAAA7Q,GAAA,CAAAxD,GAAA,EACAkT,EAAAkC,GAAA,CAAApV,EAAAkV,GACAb,EAAAe,GAAA,CAAApV,EAAAmV,GACAD,IACA9B,EAAAuB,GAAA,CAAA3U,IACAA,EAAAuV,eAAA,CAAA1B,GAEAT,EAAA1J,MAAA,CAAA1J,IAEAmV,GACAnV,EAAAuV,eAAA,CAAA3B,EAEA,KAEAN,IAEAJ,EAAA,IAAAC,QACAD,EAAA,IAAAC,QACAC,EAAA,IAAAD,QACAE,EAAA,GAEA,CACA,EAQOmC,EAAA,SAAA7B,CAAA,CAAAF,CAAA,CAAAG,CAAA,EACP,SAAAA,GAAiCA,CAAAA,EAAA,oBACjC,IAAAE,EAAAxN,MAAAC,IAAA,CAAAD,MAAAyN,OAAA,CAAAJ,GAAAA,EAAA,CAAAA,EAAA,EACA8B,EAAAhC,GA7HA,qBAAAlT,SACA,KAGAmV,CADApP,MAAAyN,OAAA,CA0HAJ,GA1HAA,CAAA,IA0HAA,CA1HA,EACAxN,aAAA,CAAAkD,IAAA,SA0HA,GAIAyK,EAAA7E,IAAA,CAAA0G,KAAA,CAAA7B,EAAAxN,MAAAC,IAAA,CAAAkP,EAAAG,gBAAA,kBACAlC,EAAAI,EAAA2B,EAAA7B,EAAA,gBAJA,WAA6B,YAK7B,EC/GMiC,EAAc,SAGd,CAACC,EAAqBC,EAAiB,CAAIC,SfNjDC,CAAA,CAAAC,EAAA,IACA,IAAAC,EAAA,GAqBAC,EAAA,KACA,IAAAC,EAAAF,EAAA1T,GAAA,IACatC,EAAAmW,aAAmB,CAAAC,IAEhC,gBAAAC,CAAA,EACA,IAAAC,EAAAD,GAAA,CAAAP,EAAA,EAAAI,EACA,OAAalW,EAAAsB,OAAa,CAC1B,MAAiB,WAAWwU,EAAU,IAAM,GAAAO,CAAA,EAAAP,EAAA,CAAAQ,CAAA,IAC5C,CAAAD,EAAAC,EAAA,CAEA,CACA,EAEA,OADAL,EAAAH,SAAA,CAAAA,EACA,CAjCA,SAAAS,CAAA,CAAAH,CAAA,EACA,IAAAI,EAAwBxW,EAAAmW,aAAmB,CAAAC,GAC3C3P,EAAAuP,EAAA7J,MAAA,CACA6J,EAAA,IAAAA,EAAAI,EAAA,CACA,IAAAK,EAAA,IACA,IAAcJ,MAAAA,CAAA,CAAAzU,SAAAA,CAAA,IAAAkE,EAAA,CAA8BpE,EAC5CgV,EAAAL,GAAA,CAAAP,EAAA,GAAArP,EAAA,EAAA+P,EACAG,EAAoB3W,EAAAsB,OAAa,KAAAwE,EAAA5C,OAAA0T,MAAA,CAAA9Q,IACjC,MAA6B,GAAApD,EAAAC,GAAA,EAAG+T,EAAAD,QAAA,EAAqBE,MAAAA,EAAA/U,SAAAA,CAAA,EACrD,SACA6U,EAAA3T,WAAA,CAAAyT,EAAA,WAQA,CAAAE,EAPA,SAAAI,CAAA,CAAAR,CAAA,EACA,IAAAK,EAAAL,GAAA,CAAAP,EAAA,GAAArP,EAAA,EAAA+P,EACA1Q,EAAsB9F,EAAA8W,UAAgB,CAAAJ,GACtC,GAAA5Q,EAAA,OAAAA,EACA,GAAAsQ,KAAA,IAAAA,EAAA,OAAAA,CACA,kBAA2BS,EAAa,2BAA2BN,EAAkB,IACrF,EACA,EAeAQ,SAEA,GAAAC,CAAA,EACA,IAAAC,EAAAD,CAAA,IACA,GAAAA,IAAAA,EAAA7K,MAAA,QAAA8K,EACA,IAAAhB,EAAA,KACA,IAAAiB,EAAAF,EAAA1U,GAAA,MACA6U,SAAAC,IACAtB,UAAAsB,EAAAtB,SAAA,CACA,GACA,gBAAAuB,CAAA,EACA,IAAAC,EAAAJ,EAAA7S,MAAA,EAAAkT,EAAA,CAA2DJ,SAAAA,CAAA,CAAArB,UAAAA,CAAA,CAAqB,IAEhF,IAAA0B,EAAAzM,EADAsM,EACA,WAAkDvB,EAAU,GAC5D,OAAiB,GAAAyB,CAAA,IAAAC,CAAA,CACjB,EAAO,IACP,OAAaxX,EAAAsB,OAAa,OAAU,WAAW2V,EAAAnB,SAAA,CAAoB,GAAAwB,CAAA,GAAgB,CAAAA,EAAA,CACnF,CACA,EAEA,OADArB,EAAAH,SAAA,CAAAmB,EAAAnB,SAAA,CACAG,CACA,EArBAA,KAAAF,GAAA,Ee7BoEL,GAc9D,CAAC+B,EAAgBC,EAAgB,CAAI/B,EAAwCD,GAU7EiC,GAAgC,IACpC,GAAM,CACJC,cAAAA,CAAA,CACAhW,SAAAA,CAAA,CACAiW,KAAMC,CAAA,CACNC,YAAAA,CAAA,CACAC,aAAAA,CAAA,CACAC,MAAAA,EAAQ,GACV,CAAIvW,EACEwW,EAAmBlT,EAAAA,MAAA,CAA0B,MAC7CmT,EAAmBnT,EAAAA,MAAA,CAA6B,MAChD,CAAC6S,EAAO,GAAOO,EAAO,CAAIC,SXzDlC,CACAC,KAAAA,CAAA,CACAC,YAAAA,CAAA,CACAC,SAAAA,EAAA,KACA,EACC,EACD,IAAAC,EAAAC,EAAA,CAAAC,SAkBA,CACAJ,YAAAA,CAAA,CACAC,SAAAA,CAAA,CACC,EACD,IAAAI,EAA4B5Y,EAAAc,QAAc,CAAAyX,GAC1C,CAAA5B,EAAA,CAAAiC,EACAC,EAAuB7Y,EAAAoB,MAAY,CAAAuV,GACnCmC,EAAuB7X,EAAcuX,GAOrC,OANExY,EAAAqB,SAAe,MACjBwX,EAAA/Y,OAAA,GAAA6W,IACAmC,EAAAnC,GACAkC,EAAA/Y,OAAA,CAAA6W,EAEA,EAAG,CAAAA,EAAAkC,EAAAC,EAAA,EACHF,CACA,EAjCA,CAAyEL,YAAAA,EAAAC,SAAAA,CAAA,GACzEO,EAAAT,KAAA,IAAAA,EACA3B,EAAAoC,EAAAT,EAAAG,EACAK,EAAuB7X,EAAcuX,GAarC,OAAA7B,EAZmB3W,EAAAC,WAAiB,CACpC,IACA,GAAA8Y,EAAA,CAEA,IAAAC,EAAA,mBAAAC,EAAAC,EAAAZ,GAAAW,EACAD,IAAAV,GAAAQ,EAAAE,EACA,MACAN,EAAAO,EAEA,EACA,CAAAF,EAAAT,EAAAI,EAAAI,EAAA,EAEA,EWmCuD,CACnDR,KAAMR,EACNS,YAAaR,EACbS,SAAUR,CACZ,GAEA,MACErV,CAAAA,EAAAA,EAAAA,GAAAA,EAAC8U,EAAA,CACCpB,MAAOuB,EACPM,WAAAA,EACAC,WAAAA,EACAgB,UAAWzY,IACX0Y,QAAS1Y,IACT2Y,cAAe3Y,IACfmX,KAAAA,EACAG,aAAcI,EACdkB,aAAoBtU,EAAAA,WAAA,CAAY,IAAMoT,EAAQ,GAAc,CAACmB,GAAW,CAACnB,EAAQ,EACjFH,MAAAA,EAECrW,SAAAA,CAAA,EAGP,CAEA+V,CAAAA,GAAO7U,WAAA,CAAc4S,EAMrB,IAAM8D,GAAe,gBAMfC,GAAsBzU,EAAAA,UAAA,CAC1B,CAACtD,EAAwCC,KACvC,GAAM,CAAEiW,cAAAA,CAAA,CAAe,GAAG8B,EAAa,CAAIhY,EACrCoE,EAAU4R,EAAiB8B,GAAc5B,GACzC+B,EAAqB5Z,EAAgB4B,EAAcmE,EAAQoS,UAAU,EAC3E,MACEvV,CAAAA,EAAAA,EAAAA,GAAAA,EAACwB,EAAUyV,MAAA,CAAV,CACC1V,KAAK,SACL,gBAAc,SACd,gBAAe4B,EAAQ+R,IAAA,CACvB,gBAAe/R,EAAQqT,SAAA,CACvB,aAAYU,GAAS/T,EAAQ+R,IAAI,EAChC,GAAG6B,CAAA,CACJ9Z,IAAK+Z,EACLG,QAAS3a,EAAqBuC,EAAMoY,OAAA,CAAShU,EAAQwT,YAAY,GAGvE,EAGFG,CAAAA,GAAc3W,WAAA,CAAc0W,GAM5B,IAAMO,GAAc,eAGd,CAACC,GAAgBC,GAAgB,CAAItE,EAAwCoE,GAAa,CAC9FvH,WAAY,MACd,GAgBM0H,GAA4C,IAChD,GAAM,CAAEtC,cAAAA,CAAA,CAAepF,WAAAA,CAAA,CAAY5Q,SAAAA,CAAA,CAAUoJ,UAAAA,CAAA,CAAU,CAAItJ,EACrDoE,EAAU4R,EAAiBqC,GAAanC,GAC9C,MACEjV,CAAAA,EAAAA,EAAAA,GAAAA,EAACqX,GAAA,CAAe3D,MAAOuB,EAAepF,WAAAA,EACnC5Q,SAAMoD,EAAAA,QAAA,CAAS1C,GAAA,CAAIV,EAAU,GAC5Be,CAAAA,EAAAA,EAAAA,GAAAA,EAAC0N,EAAA,CAASC,QAASkC,GAAc1M,EAAQ+R,IAAA,CACvCjW,SAAAe,CAAAA,EAAAA,EAAAA,GAAAA,EAACwX,EAAA,CAAgB3V,QAAO,GAACwG,UAAAA,EACtBpJ,SAAAW,CAAA,EACH,GAEH,EAGP,CAEA2X,CAAAA,GAAapX,WAAA,CAAciX,GAM3B,IAAMK,GAAe,gBAWfC,GAAsBrV,EAAAA,UAAA,CAC1B,CAACtD,EAAwCC,KACvC,IAAM2Y,EAAgBL,GAAiBG,GAAc1Y,EAAMkW,aAAa,EAClE,CAAEpF,WAAAA,EAAa8H,EAAc9H,UAAA,CAAY,GAAG+H,EAAa,CAAI7Y,EAC7DoE,EAAU4R,EAAiB0C,GAAc1Y,EAAMkW,aAAa,EAClE,OAAO9R,EAAQmS,KAAA,CACbtV,CAAAA,EAAAA,EAAAA,GAAAA,EAAC0N,EAAA,CAASC,QAASkC,GAAc1M,EAAQ+R,IAAA,CACvCjW,SAAAe,CAAAA,EAAAA,EAAAA,GAAAA,EAAC6X,GAAA,CAAmB,GAAGD,CAAA,CAAc3a,IAAK+B,CAAA,EAAc,GAExD,IACN,EAGF0Y,CAAAA,GAAcvX,WAAA,CAAcsX,GAM5B,IAAMI,GAA0BxV,EAAAA,UAAA,CAC9B,CAACtD,EAA4CC,KAC3C,GAAM,CAAEiW,cAAAA,CAAA,CAAe,GAAG2C,EAAa,CAAI7Y,EACrCoE,EAAU4R,EAAiB0C,GAAcxC,GAC/C,MAGEjV,CAAAA,EAAAA,EAAAA,GAAAA,EAAC8X,EAAAA,CAAYA,CAAZ,CAAaC,GAAIlZ,EAAMmZ,eAAc,GAACC,OAAQ,CAAC9U,EAAQqS,UAAU,EAChEvW,SAAAe,CAAAA,EAAAA,EAAAA,GAAAA,EAACwB,EAAUsF,GAAA,CAAV,CACC,aAAYoQ,GAAS/T,EAAQ+R,IAAI,EAChC,GAAG0C,CAAA,CACJ3a,IAAK+B,EAELwH,MAAO,CAAEC,cAAe,OAAQ,GAAGmR,EAAapR,KAAA,CAAM,EACxD,EAGN,GAOI0R,GAAe,gBAWfC,GAAsB9V,EAAAA,UAAA,CAC1B,CAACtD,EAAwCC,KACvC,IAAM2Y,EAAgBL,GAAiBY,GAAcnZ,EAAMkW,aAAa,EAClE,CAAEpF,WAAAA,EAAa8H,EAAc9H,UAAA,CAAY,GAAGuI,EAAa,CAAIrZ,EAC7DoE,EAAU4R,EAAiBmD,GAAcnZ,EAAMkW,aAAa,EAClE,MACEjV,CAAAA,EAAAA,EAAAA,GAAAA,EAAC0N,EAAA,CAASC,QAASkC,GAAc1M,EAAQ+R,IAAA,CACtCjW,SAAAkE,EAAQmS,KAAA,CACPtV,CAAAA,EAAAA,EAAAA,GAAAA,EAACqY,GAAA,CAAoB,GAAGD,CAAA,CAAcnb,IAAK+B,CAAA,GAE3CgB,CAAAA,EAAAA,EAAAA,GAAAA,EAACsY,GAAA,CAAuB,GAAGF,CAAA,CAAcnb,IAAK+B,CAAA,EAAc,EAIpE,EAGFmZ,CAAAA,GAAchY,WAAA,CAAc+X,GAQ5B,IAAMG,GAA2BhW,EAAAA,UAAA,CAC/B,CAACtD,EAA4CC,KAC3C,IAAMmE,EAAU4R,EAAiBmD,GAAcnZ,EAAMkW,aAAa,EAC5DO,EAAmBnT,EAAAA,MAAA,CAAuB,MAC1CkB,EAAenG,EAAgB4B,EAAcmE,EAAQqS,UAAA,CAAYA,GAQvE,OALMnT,EAAAA,SAAA,CAAU,KACd,IAAMkW,EAAU/C,EAAWrY,OAAA,CAC3B,GAAIob,EAAS,OAAO7F,EAAW6F,EACjC,EAAG,EAAE,EAGHvY,CAAAA,EAAAA,EAAAA,GAAAA,EAACwY,GAAA,CACE,GAAGzZ,CAAA,CACJ9B,IAAKsG,EAGLkV,UAAWtV,EAAQ+R,IAAA,CACnBtS,4BAA2B,GAC3B8V,iBAAkBlc,EAAqBuC,EAAM2Z,gBAAA,CAAkB,QAE7DvV,EADAvG,EAAM0J,cAAA,GACa,OAAnBnD,CAAAA,EAAAA,EAAQoS,UAAA,CAAWpY,OAAA,GAAnBgG,KAAAA,IAAAA,GAAAA,EAA4B0F,KAAA,EAC9B,GACA/F,qBAAsBtG,EAAqBuC,EAAM+D,oBAAA,CAAsB,IACrE,IAAM+B,EAAgBjI,EAAMuK,MAAA,CAAOtC,aAAA,CAC7B8T,EAAgB9T,IAAAA,EAAcoS,MAAA,EAAgBpS,CAA0B,IAA1BA,EAAc8F,OAAA,CAC7C9F,CAAAA,IAAAA,EAAcoS,MAAA,EAAgB0B,CAAAA,GAIjC/b,EAAM0J,cAAA,EAC1B,GAGAvD,eAAgBvG,EAAqBuC,EAAMgE,cAAA,CAAgB,GACzDnG,EAAM0J,cAAA,GACR,EAGN,GAKIgS,GAA8BjW,EAAAA,UAAA,CAClC,CAACtD,EAA4CC,KAC3C,IAAMmE,EAAU4R,EAAiBmD,GAAcnZ,EAAMkW,aAAa,EAC5D2D,EAAgCvW,EAAAA,MAAA,CAAO,IACvCwW,EAAiCxW,EAAAA,MAAA,CAAO,IAE9C,MACErC,CAAAA,EAAAA,EAAAA,GAAAA,EAACwY,GAAA,CACE,GAAGzZ,CAAA,CACJ9B,IAAK+B,EACLyZ,UAAW,GACX7V,4BAA6B,GAC7B8V,iBAAkB,QAChB3Z,EAGwCoE,CAHlC,QAANpE,CAAAA,EAAAA,EAAM2Z,gBAAA,GAAN3Z,KAAAA,IAAAA,GAAAA,EAAAA,IAAAA,CAAAA,EAAyBnC,GAEpBA,EAAMC,gBAAA,GACJ+b,EAAwBzb,OAAA,SAASgG,CAAAA,EAAAA,EAAQoS,UAAA,CAAWpY,OAAA,GAAnBgG,KAAAA,IAAAA,GAAAA,EAA4B0F,KAAA,GAElEjM,EAAM0J,cAAA,IAGRsS,EAAwBzb,OAAA,CAAU,GAClC0b,EAAyB1b,OAAA,CAAU,EACrC,EACA6F,kBAAmB,QACjBjE,EAawBoE,CAblB,QAANpE,CAAAA,EAAAA,EAAMiE,iBAAA,GAANjE,KAAAA,IAAAA,GAAAA,EAAAA,IAAAA,CAAAA,EAA0BnC,GAErBA,EAAMC,gBAAA,GACT+b,EAAwBzb,OAAA,CAAU,GACM,gBAApCP,EAAMuK,MAAA,CAAOtC,aAAA,CAActD,IAAA,EAC7BsX,CAAAA,EAAyB1b,OAAA,CAAU,KAOvC,IAAMqH,EAAS5H,EAAM4H,MAAA,CACfsU,CAAAA,OAAkB3V,CAAAA,EAAAA,EAAQoS,UAAA,CAAWpY,OAAA,GAAnBgG,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA4BsC,QAAA,CAASjB,EAAAA,GACxC5H,EAAM0J,cAAA,GAMa,YAApC1J,EAAMuK,MAAA,CAAOtC,aAAA,CAActD,IAAA,EAAsBsX,EAAyB1b,OAAA,EAC5EP,EAAM0J,cAAA,EAEV,GAGN,GA6BIkS,GAA0BnW,EAAAA,UAAA,CAC9B,CAACtD,EAA4CC,KAC3C,GAAM,CAAEiW,cAAAA,CAAA,CAAewD,UAAAA,CAAA,CAAWM,gBAAAA,CAAA,CAAiBL,iBAAAA,CAAA,CAAkB,GAAGN,EAAa,CAAIrZ,EACnFoE,EAAU4R,EAAiBmD,GAAcjD,GACzCO,EAAmBnT,EAAAA,MAAA,CAAuB,MAC1CkB,EAAenG,EAAgB4B,EAAcwW,GAMnD,OFxXInT,EAAAA,SAAA,CAAU,SAEoC2W,EACDA,EAFjD,IAAMA,EAAavb,SAASqV,gBAAA,CAAiB,4BAK7C,OAJArV,SAAS8I,IAAA,CAAK0S,qBAAA,CAAsB,aAAcD,OAAAA,CAAAA,EAAAA,CAAA,CAAW,EAAC,GAAZA,KAAAA,IAAAA,EAAAA,EAAiBlJ,KACnErS,SAAS8I,IAAA,CAAK0S,qBAAA,CAAsB,YAAaD,OAAAA,CAAAA,EAAAA,CAAA,CAAW,EAAC,GAAZA,KAAAA,IAAAA,EAAAA,EAAiBlJ,KAClEhS,IAEO,KACS,IAAVA,GACFL,SAASqV,gBAAA,CAAiB,4BAA4B9V,OAAA,CAAQ,GAAUE,EAAKsN,MAAA,IAE/E1M,GACF,CACF,EAAG,EAAE,EE6WDob,CAAAA,EAAAA,EAAAA,IAAAA,EAAA5X,EAAAA,QAAAA,CAAA,CACErC,SAAA,CAAAe,CAAAA,EAAAA,EAAAA,GAAAA,EAAC6H,EAAA,CACChG,QAAO,GACPiG,KAAI,GACJC,QAAS0Q,EACTzQ,iBAAkB+Q,EAClB7Q,mBAAoBwQ,EAEpBzZ,SAAAe,CAAAA,EAAAA,EAAAA,GAAAA,EAAC0C,EAAA,CACCyW,KAAK,SACLlb,GAAIkF,EAAQqT,SAAA,CACZ,mBAAkBrT,EAAQuT,aAAA,CAC1B,kBAAiBvT,EAAQsT,OAAA,CACzB,aAAYS,GAAS/T,EAAQ+R,IAAI,EAChC,GAAGkD,CAAA,CACJnb,IAAKsG,EACLN,UAAW,IAAME,EAAQkS,YAAA,CAAa,GAAK,EAC7C,GAGA6D,CAAAA,EAAAA,EAAAA,IAAAA,EAAA5X,EAAAA,QAAAA,CAAA,CACErC,SAAA,CAAAe,CAAAA,EAAAA,EAAAA,GAAAA,EAACoZ,GAAA,CAAa3C,QAAStT,EAAQsT,OAAA,GAC/BzW,CAAAA,EAAAA,EAAAA,GAAAA,EAACqZ,GAAA,CAAmB7D,WAAAA,EAAwBkB,cAAevT,EAAQuT,aAAA,GAAe,GACpF,EAIR,GAOI4C,GAAa,cAMbC,GAAoBlX,EAAAA,UAAA,CACxB,CAACtD,EAAsCC,KACrC,GAAM,CAAEiW,cAAAA,CAAA,CAAe,GAAGuE,EAAW,CAAIza,EACnCoE,EAAU4R,EAAiBuE,GAAYrE,GAC7C,MAAOjV,CAAAA,EAAAA,EAAAA,GAAAA,EAACwB,EAAUiY,EAAA,CAAV,CAAaxb,GAAIkF,EAAQsT,OAAA,CAAU,GAAG+C,CAAA,CAAYvc,IAAK+B,CAAA,EACjE,EAGFua,CAAAA,GAAYpZ,WAAA,CAAcmZ,GAM1B,IAAMI,GAAmB,oBAMnBC,GAA0BtX,EAAAA,UAAA,CAC9B,CAACtD,EAA4CC,KAC3C,GAAM,CAAEiW,cAAAA,CAAA,CAAe,GAAG2E,EAAiB,CAAI7a,EACzCoE,EAAU4R,EAAiB2E,GAAkBzE,GACnD,MAAOjV,CAAAA,EAAAA,EAAAA,GAAAA,EAACwB,EAAUqY,CAAA,CAAV,CAAY5b,GAAIkF,EAAQuT,aAAA,CAAgB,GAAGkD,CAAA,CAAkB3c,IAAK+B,CAAA,EAC5E,EAGF2a,CAAAA,GAAkBxZ,WAAA,CAAcuZ,GAMhC,IAAMI,GAAa,cAKbC,GAAoB1X,EAAAA,UAAA,CACxB,CAACtD,EAAsCC,KACrC,GAAM,CAAEiW,cAAAA,CAAA,CAAe,GAAG+E,EAAW,CAAIjb,EACnCoE,EAAU4R,EAAiB+E,GAAY7E,GAC7C,MACEjV,CAAAA,EAAAA,EAAAA,GAAAA,EAACwB,EAAUyV,MAAA,CAAV,CACC1V,KAAK,SACJ,GAAGyY,CAAA,CACJ/c,IAAK+B,EACLmY,QAAS3a,EAAqBuC,EAAMoY,OAAA,CAAS,IAAMhU,EAAQkS,YAAA,CAAa,IAAM,EAGpF,GAOF,SAAS6B,GAAShC,CAAA,EAChB,OAAOA,EAAO,OAAS,QACzB,CANA6E,GAAY5Z,WAAA,CAAc2Z,GAQ1B,IAAMG,GAAqB,qBAErB,CAACC,GAAiBC,GAAiB,CAAI3G,Sf7e7CI,CAAA,CAAAH,CAAA,EACA,IAAAM,EAAkB1W,EAAAmW,aAAmB,CAAAC,GACrCK,EAAA,IACA,IAAY7U,SAAAA,CAAA,IAAAkE,EAAA,CAAuBpE,EACnCiV,EAAkB3W,EAAAsB,OAAa,KAAAwE,EAAA5C,OAAA0T,MAAA,CAAA9Q,IAC/B,MAA2B,GAAApD,EAAAC,GAAA,EAAG+T,EAAAD,QAAA,EAAqBE,MAAAA,EAAA/U,SAAAA,CAAA,EACnD,SACA6U,EAAA3T,WAAA,CAAAyT,EAAA,WAOA,CAAAE,EANA,SAAAI,CAAA,EACA,IAAA/Q,EAAoB9F,EAAA8W,UAAgB,CAAAJ,GACpC,GAAA5Q,EAAA,OAAAA,EACA,GAAAsQ,KAAA,IAAAA,EAAA,OAAAA,CACA,kBAAyBS,EAAa,2BAA2BN,EAAkB,IACnF,EACA,Ee+d2DqG,GAAoB,CAC7EG,YAAalC,GACbmC,UAAWf,GACXgB,SAAU,QACZ,GAIMlB,GAA4C,OAAC,CAAE3C,QAAAA,CAAA,CAAQ,CAAArP,EACrDmT,EAAsBJ,GAAkBF,IAExCO,EAAU,IAAuDD,MAAAA,CAAlDA,EAAoBH,WAAW,mBAE1BG,MAAAA,CAF6CA,EAAoBF,SAAS,+FAI1BE,MAAAA,CAFhDA,EAAoBF,SAAS,wIAE+CI,MAAA,CAA5BF,EAAoBD,QAAQ,EAStG,OAPMjY,EAAAA,SAAA,CAAU,KACVoU,GAEE,CADahZ,SAASid,cAAA,CAAejE,IAC1BrF,QAAQC,KAAA,CAAMmJ,EAEjC,EAAG,CAACA,EAAS/D,EAAQ,EAEd,IACT,EASM4C,GAAwD,OAAC,CAAE7D,WAAAA,CAAA,CAAYkB,cAAAA,CAAA,CAAc,CAAAtP,EACnFuT,EAA4BR,GARH,4BASzBK,EAAU,yEAAkHC,MAAA,CAArCE,EAA0BP,WAAW,OAWlI,OATM/X,EAAAA,SAAA,CAAU,SACQmT,EAAtB,IAAMoF,EAAAA,OAAgBpF,CAAAA,EAAAA,EAAWrY,OAAA,GAAXqY,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoBtD,YAAA,CAAa,oBAEnDwE,GAAiBkE,GAEf,CADmBnd,SAASid,cAAA,CAAehE,IAC1BtF,QAAQyJ,IAAA,CAAKL,EAEtC,EAAG,CAACA,EAAShF,EAAYkB,EAAc,EAEhC,IACT,EAEMoE,GAAO9F,GACP+F,GAAUjE,GACV1J,GAASmK,GACTyD,GAAUtD,GACVuD,GAAU9C,GACV+C,GAAQ3B,GACR4B,GAAcxB,GACdyB,GAAQrB,0DExiBd,IAAAsB,EAAA,qBAAArH,EAAA,GAAAyG,MAAA,CAAAzG,GAAAA,IAAAA,EAAA,IAAAA,EACOsH,EDFwO,WAAgB,QAAA/I,EAAAgJ,EAAAC,EAAA,EAAAC,EAAA,GAAqBD,EAAAtR,UAAAV,MAAA,EAAmB,CAAA+I,EAAArI,SAAA,CAAAsR,IAAA,GAAAD,CAAAA,EAAAG,SAAvSA,EAAAnJ,CAAA,EAAc,IAAAgJ,EAAAC,EAAAC,EAAA,GAAa,oBAAAlJ,GAAA,iBAAAA,EAAAkJ,GAAAlJ,OAA+C,oBAAAA,GAAA,GAAA/O,MAAAyN,OAAA,CAAAsB,GAAA,IAAAgJ,EAAA,EAAuDA,EAAAhJ,EAAA/I,MAAA,CAAW+R,IAAAhJ,CAAA,CAAAgJ,EAAA,EAAAC,CAAAA,EAAAE,EAAAnJ,CAAA,CAAAgJ,EAAA,IAAAE,CAAAA,GAAAA,CAAAA,GAAA,KAAAA,GAAAD,CAAAA,OAA0C,IAAAD,KAAAhJ,EAAAA,CAAA,CAAAgJ,EAAA,EAAAE,CAAAA,GAAAA,CAAAA,GAAA,KAAAA,GAAAF,CAAAA,EAAyC,OAAAE,CAAA,EAAwElJ,EAAA,GAAAkJ,CAAAA,GAAAA,CAAAA,GAAA,KAAAA,GAAAF,CAAAA,EAAkD,OAAAE,CAAA,ECGlVE,EAAA,CAAAC,EAAAC,IACP,IACA,IAAA5e,EACA,IAAA4e,MAAAA,EAAA,OAAAA,EAAAC,QAAA,eAAAR,EAAAM,EAAA7c,MAAAA,EAAA,OAAAA,EAAAgd,KAAA,CAAAhd,MAAAA,EAAA,OAAAA,EAAAid,SAAA,EACA,IAAgBF,SAAAA,CAAA,CAAAG,gBAAAA,CAAA,EAA8BJ,EAC9CK,EAAA3b,OAAA4b,IAAA,CAAAL,GAAAnc,GAAA,KACA,IAAAyc,EAAArd,MAAAA,EAAA,OAAAA,CAAA,CAAAsd,EAAA,CACAC,EAAAL,MAAAA,EAAA,OAAAA,CAAA,CAAAI,EAAA,CACA,GAAAD,OAAAA,EAAA,YACA,IAAAG,EAAAlB,EAAAe,IAAAf,EAAAiB,GACA,OAAAR,CAAA,CAAAO,EAAA,CAAAE,EAAA,GAEAC,EAAAzd,GAAAwB,OAAAkc,OAAA,CAAA1d,GAAA2C,MAAA,EAAAgb,EAAAtV,KACA,IAAAhB,EAAA4N,EAAA,CAAA5M,SACAuV,KAAAA,IAAA3I,GAGA0I,CAAAA,CAAA,CAAAtW,EAAA,CAAA4N,CAAA,EAFA0I,CAIA,EAAS,IAkBT,OAAApB,EAAAM,EAAAM,EAjBAL,MAAAA,EAAA,cAAA5e,CAAAA,EAAA4e,EAAAe,gBAAA,GAAA3f,KAAA,IAAAA,EAAA,OAAAA,EAAAyE,MAAA,EAAAgb,EAAAG,KACA,IAAkBd,MAAAe,CAAA,CAAAd,UAAAe,CAAA,IAAAC,EAAA,CAAsEH,EACxF,OAAAtc,OAAAkc,OAAA,CAAAO,GAAAC,KAAA,KACA,IAAA7W,EAAA4N,EAAA,CAAA5M,EACA,OAAA5D,MAAAyN,OAAA,CAAA+C,GAAAA,EAAAzE,QAAA,EACA,GAAA0M,CAAA,CACA,GAAAO,CAAA,CACiB,CAAApW,EAAA,IACjB,GAAA6V,CAAA,CACA,GAAAO,CAAA,CACA,CAAiB,CAAApW,EAAA,GAAA4N,CACjB,GAAa,IACb0I,EACAI,EACAC,EACA,CAAAL,CACA,EAAS,IACT3d,MAAAA,EAAA,OAAAA,EAAAgd,KAAA,CAAAhd,MAAAA,EAAA,OAAAA,EAAAid,SAAA,CACA,wEExCWkB,EAAiB,CAC1BC,MAAOR,KAAAA,EACP3Y,KAAM2Y,KAAAA,EACNX,UAAWW,KAAAA,EACXnW,MAAOmW,KAAAA,EACP1K,KAAM0K,KAAAA,CACR,EACWS,EAAc/a,EAAAA,aAAmB,EAAiBA,EAAAA,aAAmB,CAAC6a,GCR7EG,EAAY,CAAC,OAAQ,OAAQ,QAAQ,CAGzC,SAASC,IAAiS,MAAOA,CAA3RA,EAAW/c,OAAOgd,MAAM,CAAGhd,OAAOgd,MAAM,CAACC,IAAI,GAAK,SAAUhZ,CAAM,EAAI,IAAK,IAAIiZ,EAAI,EAAGA,EAAIvT,UAAUV,MAAM,CAAEiU,IAAK,CAAE,IAAIC,EAASxT,SAAS,CAACuT,EAAE,CAAE,IAAK,IAAIrX,KAAOsX,EAAcnd,OAAOwR,SAAS,CAAC4L,cAAc,CAAC3L,IAAI,CAAC0L,EAAQtX,IAAQ5B,CAAAA,CAAM,CAAC4B,EAAI,CAAGsX,CAAM,CAACtX,EAAI,CAAM,CAAE,OAAO5B,CAAQ,GAAmBqO,KAAK,CAAC,IAAI,CAAE3I,UAAY,CAClV,SAAS0T,EAAQrL,CAAC,CAAEmJ,CAAC,EAAI,IAAIH,EAAIhb,OAAO4b,IAAI,CAAC5J,GAAI,GAAIhS,OAAOsd,qBAAqB,CAAE,CAAE,IAAIC,EAAIvd,OAAOsd,qBAAqB,CAACtL,EAAImJ,CAAAA,GAAMoC,CAAAA,EAAIA,EAAE3c,MAAM,CAAC,SAAUua,CAAC,EAAI,OAAOnb,OAAOC,wBAAwB,CAAC+R,EAAGmJ,GAAGqC,UAAU,EAAE,EAAKxC,EAAEpP,IAAI,CAAC0G,KAAK,CAAC0I,EAAGuC,EAAI,CAAE,OAAOvC,CAAG,CAC9P,SAASyC,EAAczL,CAAC,EAAI,IAAK,IAAImJ,EAAI,EAAGA,EAAIxR,UAAUV,MAAM,CAAEkS,IAAK,CAAE,IAAIH,EAAI,MAAQrR,SAAS,CAACwR,EAAE,CAAGxR,SAAS,CAACwR,EAAE,CAAG,CAAC,CAAGA,CAAAA,EAAI,EAAIkC,EAAQrd,OAAOgb,GAAI,CAAC,GAAGve,OAAO,CAAC,SAAU0e,CAAC,MAC/ItV,EAAK4N,EAAL5N,EADsKsV,EACjK1H,EADoKuH,CAAC,CAACG,EAAE,CAChItV,CAA/BA,EAAM6X,SAC1B1C,CAAC,EAAI,IAAIkC,EAAIS,SACf3C,CAAC,CAAEG,CAAC,EAAI,GAAI,UAAY,OAAOH,GAAK,CAACA,EAAG,OAAOA,EAAG,IAAIhJ,EAAIgJ,CAAC,CAACtZ,OAAOkc,WAAW,CAAC,CAAE,GAAI,KAAK,IAAM5L,EAAG,CAAE,IAAIkL,EAAIlL,EAAEP,IAAI,CAACuJ,EAAGG,GAAK,WAAY,GAAI,UAAY,OAAO+B,EAAG,OAAOA,CAAG,OAAM,UAAc,+CAAiD,CAAE,MAAO,CAAC,WAAa/B,EAAIrd,OAAS+f,MAAAA,EAAQ7C,EAAI,EADrQA,EAAG,UAAW,MAAO,UAAY,OAAOkC,EAAIA,EAAIA,EAAI,EAAI,EADzCrX,EAAAA,IADgImM,EACxGhS,OAAO8d,cAAc,CADmF9L,EAC7EnM,EAAK,CAAE4N,MAAOA,EAAO+J,WAAY,GAAMO,aAAc,GAAMC,SAAU,EAAK,GAAaC,CAAG,CAACpY,EAAI,CAAG4N,CADR,GAAKzT,OAAOke,yBAAyB,CAAGle,OAAOme,gBAAgB,CAACnM,EAAGhS,OAAOke,yBAAyB,CAAClD,IAAMqC,EAAQrd,OAAOgb,IAAIve,OAAO,CAAC,SAAU0e,CAAC,EAAInb,OAAO8d,cAAc,CAAC9L,EAAGmJ,EAAGnb,OAAOC,wBAAwB,CAAC+a,EAAGG,GAAK,EAAI,CAAE,OAAOnJ,CAAG,CAW/a,SAASoM,EAAQC,CAAI,EAC1B,OAAO7f,GAAsBsD,EAAAA,aAAmB,CAACwc,EAAUvB,EAAS,CAClErL,KAAM+L,EAAc,CAAC,EAAGY,EAAK3M,IAAI,CACnC,EAAGlT,GAAQ+f,SARJA,EAAaC,CAAI,EACxB,OAAOA,GAAQA,EAAKpf,GAAG,CAAC,CAACzC,EAAMugB,IAAmBpb,EAAAA,aAAmB,CAACnF,EAAK8hB,GAAG,CAAEhB,EAAc,CAC5F5X,IAAKqX,CACP,EAAGvgB,EAAK+U,IAAI,EAAG6M,EAAa5hB,EAAK0C,KAAK,GACxC,EAI0Bgf,EAAKhf,KAAK,EACpC,CACO,SAASif,EAAS9f,CAAK,EAC5B,IAAIkgB,EAAOC,IACT,IAOIlD,EAPA,CACA/J,KAAAA,CAAI,CACJjO,KAAAA,CAAI,CACJmb,MAAAA,CAAK,CACN,CAAGpgB,EACJqgB,EAAWC,SA3BiB3B,CAAM,CAAE4B,CAAQ,EAAI,GAAI5B,MAAAA,EAAgB,MAAO,CAAC,EAAG,IAAkEtX,EAAKqX,EAAnEjZ,EAAS+a,SAC3D7B,CAAM,CAAE4B,CAAQ,EAAI,GAAI5B,MAAAA,EAAgB,MAAO,CAAC,EAAG,IAAIlZ,EAAS,CAAC,EAAG,IAAK,IAAI4B,KAAOsX,EAAU,GAAInd,OAAOwR,SAAS,CAAC4L,cAAc,CAAC3L,IAAI,CAAC0L,EAAQtX,GAAM,CAAE,GAAIkZ,EAASzb,OAAO,CAACuC,IAAQ,EAAG,QAAU5B,CAAAA,CAAM,CAAC4B,EAAI,CAAGsX,CAAM,CAACtX,EAAI,CAAM,OAAO5B,CAAQ,EADtJkZ,EAAQ4B,GAAuB,GAAI/e,OAAOsd,qBAAqB,CAAE,CAAE,IAAI2B,EAAmBjf,OAAOsd,qBAAqB,CAACH,GAAS,IAAKD,EAAI,EAAGA,EAAI+B,EAAiBhW,MAAM,CAAEiU,IAAOrX,EAAMoZ,CAAgB,CAAC/B,EAAE,EAAM6B,CAAAA,EAASzb,OAAO,CAACuC,IAAQ,IAAkB7F,OAAOwR,SAAS,CAAC0N,oBAAoB,CAACzN,IAAI,CAAC0L,EAAQtX,IAAgB5B,CAAAA,CAAM,CAAC4B,EAAI,CAAGsX,CAAM,CAACtX,EAAI,CAAI,CAAE,OAAO5B,CAAQ,EA2BjczF,EAAOse,GACzCqC,EAAe1b,GAAQkb,EAAKlb,IAAI,EAAI,MAIxC,OAFIkb,EAAKlD,SAAS,EAAEA,CAAAA,EAAYkD,EAAKlD,SAAS,EAC1Cjd,EAAMid,SAAS,EAAEA,CAAAA,EAAY,CAACA,EAAYA,EAAY,IAAM,IAAMjd,EAAMid,SAAS,EACjE3Z,EAAAA,aAAmB,CAAC,MAAOib,EAAS,CACtDqC,OAAQ,eACRC,KAAM,eACNC,YAAa,GACf,EAAGX,EAAKjN,IAAI,CAAEA,EAAMmN,EAAU,CAC5BpD,UAAWA,EACXxV,MAAOwX,EAAcA,EAAc,CACjCb,MAAOpe,EAAMoe,KAAK,EAAI+B,EAAK/B,KAAK,EAC/B+B,EAAK1Y,KAAK,EAAGzH,EAAMyH,KAAK,EAC3BsZ,OAAQJ,EACRK,MAAOL,EACPM,MAAO,4BACT,GAAIb,GAAsB9c,EAAAA,aAAmB,CAAC,QAAS,KAAM8c,GAAQpgB,EAAME,QAAQ,CACrF,EACA,OAAOme,KAAgBT,IAAhBS,EAAyC/a,EAAAA,aAAmB,CAAC+a,EAAY6C,QAAQ,CAAE,KAAMf,GAAQD,EAAKC,IAASD,EAAK/B,EAC7H,0DE/CA,IAAAgD,EAAArE,IACA,IAAAsE,EAAAC,EAAAvE,GACA,CACAwE,uBAAAA,CAAA,CACAC,+BAAAA,CAAA,CACA,CAAIzE,EAgBJ,OACA0E,gBAhBAvE,IACA,IAAAwE,EAAAxE,EAAAyE,KAAA,CARA,KAaA,MAHA,KAAAD,CAAA,KAAAA,IAAAA,EAAAhX,MAAA,EACAgX,EAAAE,KAAA,GAEAC,EAAAH,EAAAL,IAAAS,EAAA5E,EACA,EAUA6E,4BATA,CAAAC,EAAAC,KACA,IAAAC,EAAAX,CAAA,CAAAS,EAAA,YACA,GAAAR,CAAA,CAAAQ,EAAA,CACA,IAAAE,KAAAV,CAAA,CAAAQ,EAAA,EAEAE,CACA,CAIA,CACA,EACAL,EAAA,CAAAH,EAAAS,KACA,GAAAT,IAAAA,EAAAhX,MAAA,CACA,OAAAyX,EAAAH,YAAA,CAEA,IAAAI,EAAAV,CAAA,IACAW,EAAAF,EAAAG,QAAA,CAAA1gB,GAAA,CAAAwgB,GACAG,EAAAF,EAAAR,EAAAH,EAAA7c,KAAA,IAAAwd,GAAAxE,KAAAA,EACA,GAAA0E,EACA,OAAAA,EAEA,GAAAJ,IAAAA,EAAAK,UAAA,CAAA9X,MAAA,CACA,OAEA,IAAA+X,EAAAf,EAAApf,IAAA,CAxCA,KAyCA,OAAA6f,EAAAK,UAAA,CAAA/hB,IAAA,GACAiiB,UAAAA,CAAA,CACG,GAAAA,EAAAD,KAAAT,YACH,EACAW,EAAA,aACAb,EAAA5E,IACA,GAAAyF,EAAAvgB,IAAA,CAAA8a,GAAA,CACA,IAAA0F,EAAAD,EAAAE,IAAA,CAAA3F,EAAA,IACA4F,EAAAF,GAAAG,UAAA,EAAAH,EAAA7d,OAAA,OACA,GAAA+d,EAEA,oBAAAA,CAEA,CACA,EAIAxB,EAAAvE,IACA,IACAiG,MAAAA,CAAA,CACAC,OAAAA,CAAA,CACA,CAAIlG,EACJsE,EAAA,CACAiB,SAAA,IAAAY,IACAV,WAAA,IAMA,OAHAW,EADA1hB,OAAAkc,OAAA,CAAAZ,EAAAqG,WAAA,EAAAH,GACA/kB,OAAA,GAAA8jB,EAAAqB,EAAA,IACAC,EAAAD,EAAAhC,EAAAW,EAAAgB,EACA,GACA3B,CACA,EACAiC,EAAA,CAAAD,EAAAlB,EAAAH,EAAAgB,KACAK,EAAAnlB,OAAA,CAAAqlB,IACA,oBAAAA,EAAA,CAEAC,CADAD,KAAAA,EAAApB,EAAAsB,EAAAtB,EAAAoB,EAAA,EACAvB,YAAA,CAAAA,EACA,MACA,CACA,sBAAAuB,EAAA,CACA,GAAAG,EAAAH,GAAA,CACAD,EAAAC,EAAAP,GAAAb,EAAAH,EAAAgB,GACA,MACA,CACAb,EAAAK,UAAA,CAAAnV,IAAA,EACAqV,UAAAa,EACAvB,aAAAA,CACA,GACA,MACA,CACAvgB,OAAAkc,OAAA,CAAA4F,GAAArlB,OAAA,GAAAoJ,EAAA+b,EAAA,IACAC,EAAAD,EAAAI,EAAAtB,EAAA7a,GAAA0a,EAAAgB,EACA,EACA,EACA,EACAS,EAAA,CAAAtB,EAAAwB,KACA,IAAAC,EAAAzB,EAUA,OATAwB,EAAAhC,KAAA,CAnGA,KAmGAzjB,OAAA,CAAA2lB,IACAD,EAAAtB,QAAA,CAAAvP,GAAA,CAAA8Q,IACAD,EAAAtB,QAAA,CAAA9O,GAAA,CAAAqQ,EAAA,CACAvB,SAAA,IAAAY,IACAV,WAAA,KAGAoB,EAAAA,EAAAtB,QAAA,CAAA1gB,GAAA,CAAAiiB,EACA,GACAD,CACA,EACAF,EAAAI,GAAAA,EAAAJ,aAAA,CACAK,EAAA,CAAAC,EAAAf,IACA,EAGAe,EAAAnjB,GAAA,GAAAmhB,EAAAqB,EAAA,GAUA,CAAArB,EATAqB,EAAAxiB,GAAA,CAAA0iB,GACA,iBAAAA,EACAN,EAAAM,EAEA,iBAAAA,EACA9hB,OAAAwiB,WAAA,CAAAxiB,OAAAkc,OAAA,CAAA4F,GAAA1iB,GAAA,GAAAyG,EAAA4N,EAAA,IAAA+N,EAAA3b,EAAA4N,EAAA,GAEAqO,GAEA,EAZAS,EAiBAE,EAAAC,IACA,GAAAA,EAAA,EACA,OACAviB,IAAA,IAAAic,KAAAA,EACArK,IAAA,MACA,EAEA,IAAA4Q,EAAA,EACAC,EAAA,IAAAnB,IACAoB,EAAA,IAAApB,IACAqB,EAAA,CAAAjd,EAAA4N,KACAmP,EAAA7Q,GAAA,CAAAlM,EAAA4N,KAEAkP,EAAAD,IACAC,EAAA,EACAE,EAAAD,EACAA,EAAA,IAAAnB,IAEA,EACA,OACAthB,IAAA0F,CAAA,EACA,IAAA4N,EAAAmP,EAAAziB,GAAA,CAAA0F,UACA,KAAAuW,IAAA3I,EACAA,EAEA,KAAA2I,IAAA3I,CAAAA,EAAAoP,EAAA1iB,GAAA,CAAA0F,EAAA,GACAid,EAAAjd,EAAA4N,GACAA,SAEA,EACA1B,IAAAlM,CAAA,CAAA4N,CAAA,EACAmP,EAAAtR,GAAA,CAAAzL,GACA+c,EAAA7Q,GAAA,CAAAlM,EAAA4N,GAEAqP,EAAAjd,EAAA4N,EAEA,CACA,CACA,EAEAsP,EAAAzH,IACA,IACA0H,UAAAA,CAAA,CACAC,2BAAAA,CAAA,CACA,CAAI3H,EACJ4H,EAAAF,IAAAA,EAAA/Z,MAAA,CACAka,EAAAH,CAAA,IACAI,EAAAJ,EAAA/Z,MAAA,CAEAoa,EAAA5H,QAIA6H,EAHA,IAAAC,EAAA,GACAC,EAAA,EACAC,EAAA,EAEA,QAAAlgB,EAAA,EAAwBA,EAAAkY,EAAAxS,MAAA,CAA0B1F,IAAA,CAClD,IAAAmgB,EAAAjI,CAAA,CAAAlY,EAAA,CACA,GAAAigB,IAAAA,EAAA,CACA,GAAAE,IAAAP,GAAAD,CAAAA,GAAAzH,EAAArY,KAAA,CAAAG,EAAAA,EAAA6f,KAAAJ,CAAA,GACAO,EAAA3X,IAAA,CAAA6P,EAAArY,KAAA,CAAAqgB,EAAAlgB,IACAkgB,EAAAlgB,EAAA6f,EACA,QACA,CACA,GAAAM,MAAAA,EAAA,CACAJ,EAAA/f,EACA,QACA,CACA,CACAmgB,MAAAA,EACAF,IACQ,MAAAE,GACRF,GAEA,CACA,IAAAG,EAAAJ,IAAAA,EAAAta,MAAA,CAAAwS,EAAAA,EAAA6F,SAAA,CAAAmC,GACAG,EAAAD,EAAAE,UAAA,CAnCA,KAoCAC,EAAAF,EAAAD,EAAArC,SAAA,IAAAqC,EAEA,OACAJ,UAAAA,EACAK,qBAAAA,EACAE,cAAAA,EACAC,6BALAT,GAAAA,EAAAG,EAAAH,EAAAG,EAAArH,KAAAA,CAMA,CACA,SACA,EACAX,GAAAwH,EAAA,CACAxH,UAAAA,EACA4H,eAAAA,CACA,GAEAA,CACA,EAMAW,EAAAT,IACA,GAAAA,EAAAta,MAAA,IACA,OAAAsa,EAEA,IAAAU,EAAA,GACAC,EAAA,GAWA,OAVAX,EAAA9mB,OAAA,CAAA0nB,IACAA,MAAAA,CAAA,KAEAF,EAAArY,IAAA,IAAAsY,EAAAE,IAAA,GAAAD,GACAD,EAAA,IAEAA,EAAAtY,IAAA,CAAAuY,EAEA,GACAF,EAAArY,IAAA,IAAAsY,EAAAE,IAAA,IACAH,CACA,EACAI,EAAA/I,GAAA,EACAsH,MAAAH,EAAAnH,EAAAqH,SAAA,EACAU,eAAAN,EAAAzH,GACA,GAAAqE,EAAArE,EAAA,CACA,EACAgJ,EAAA,MACAC,EAAA,CAAAC,EAAAC,KACA,IACApB,eAAAA,CAAA,CACArD,gBAAAA,CAAA,CACAM,4BAAAA,CAAA,CACA,CAAImE,EAQJC,EAAA,GACAC,EAAAH,EAAAI,IAAA,GAAA1E,KAAA,CAAAoE,GACAO,EAAA,GACA,QAAAthB,EAAAohB,EAAA1b,MAAA,GAA0C1F,GAAA,EAAYA,GAAA,GACtD,IAAAuhB,EAAAH,CAAA,CAAAphB,EAAA,CACA,CACAggB,UAAAA,CAAA,CACAK,qBAAAA,CAAA,CACAE,cAAAA,CAAA,CACAC,6BAAAA,CAAA,CACA,CAAMV,EAAAyB,GACNtE,EAAAvjB,CAAAA,CAAA8mB,EACAxD,EAAAP,EAAAQ,EAAAsD,EAAAxC,SAAA,GAAAyC,GAAAD,GACA,IAAAvD,EAAA,CACA,IAAAC,GAMA,CADAD,CAAAA,EAAAP,EAAA8D,EAAA,EALA,CAEAe,EAAAC,EAAAD,CAAAA,EAAA5b,MAAA,OAAA4b,EAAAA,CAAA,EACA,QACA,CAOArE,EAAA,EACA,CACA,IAAAuE,EAAAf,EAAAT,GAAA1iB,IAAA,MACAmkB,EAAApB,EAAAmB,EA3HA,IA2HAA,EACAE,EAAAD,EAAAzE,EACA,GAAAmE,EAAA1V,QAAA,CAAAiW,GAEA,SAEAP,EAAA9Y,IAAA,CAAAqZ,GACA,IAAAC,EAAA5E,EAAAC,EAAAC,GACA,QAAAtD,EAAA,EAAoBA,EAAAgI,EAAAjc,MAAA,CAA2B,EAAAiU,EAAA,CAC/C,IAAAiI,EAAAD,CAAA,CAAAhI,EAAA,CACAwH,EAAA9Y,IAAA,CAAAoZ,EAAAG,EACA,CAEAN,EAAAC,EAAAD,CAAAA,EAAA5b,MAAA,OAAA4b,EAAAA,CAAA,CACA,CACA,OAAAA,CACA,EAWA,SAAAO,IACA,IACAC,EACAC,EAFA/hB,EAAA,EAGAgiB,EAAA,GACA,KAAAhiB,EAAAoG,UAAAV,MAAA,EACAoc,CAAAA,EAAA1b,SAAA,CAAApG,IAAA,GACA+hB,CAAAA,EAAAE,EAAAH,EAAA,IACAE,GAAAA,CAAAA,GAAA,KACAA,GAAAD,GAIA,OAAAC,CACA,CACA,IAAAC,EAAAC,QAIAH,EAHA,oBAAAG,EACA,OAAAA,EAGA,IAAAF,EAAA,GACA,QAAAG,EAAA,EAAkBA,EAAAD,EAAAxc,MAAA,CAAgByc,IAClCD,CAAA,CAAAC,EAAA,EACAJ,CAAAA,EAAAE,EAAAC,CAAA,CAAAC,EAAA,KACAH,GAAAA,CAAAA,GAAA,KACAA,GAAAD,GAIA,OAAAC,CACA,EA2BAI,EAAA9f,IACA,IAAA+f,EAAArE,GAAAA,CAAA,CAAA1b,EAAA,KAEA,OADA+f,EAAA3D,aAAA,IACA2D,CACA,EACAC,EAAA,6BACAC,EAAA,aACAC,EAAA,IAAA/jB,IAAA,wBACAgkB,EAAA,mCACAC,EAAA,4HACAC,EAAA,2CAEAC,EAAA,kEACAC,EAAA,+FACAC,EAAA5S,GAAA6S,EAAA7S,IAAAsS,EAAAzU,GAAA,CAAAmC,IAAAqS,EAAAnlB,IAAA,CAAA8S,GACA8S,EAAA9S,GAAA+S,EAAA/S,EAAA,SAAAgT,GACAH,EAAA7S,GAAAxW,CAAAA,CAAAwW,GAAA,CAAAoK,OAAA6I,KAAA,CAAA7I,OAAApK,IACAkT,EAAAlT,GAAA+S,EAAA/S,EAAA,SAAA6S,GACAM,EAAAnT,GAAAxW,CAAAA,CAAAwW,GAAAoK,OAAA+I,SAAA,CAAA/I,OAAApK,IACAoT,EAAApT,GAAAA,EAAAqT,QAAA,OAAAR,EAAA7S,EAAArQ,KAAA,QACA2jB,EAAAtT,GAAAoS,EAAAllB,IAAA,CAAA8S,GACAuT,EAAAvT,GAAAuS,EAAArlB,IAAA,CAAA8S,GACAwT,EAAA,IAAAjlB,IAAA,gCACAklB,EAAAzT,GAAA+S,EAAA/S,EAAAwT,EAAAE,GACAC,EAAA3T,GAAA+S,EAAA/S,EAAA,WAAA0T,GACAE,EAAA,IAAArlB,IAAA,iBACAslB,EAAA7T,GAAA+S,EAAA/S,EAAA4T,EAAAE,GACAC,EAAA/T,GAAA+S,EAAA/S,EAAA,GAAAgU,GACAC,EAAA,OACAlB,EAAA,CAAA/S,EAAAkU,EAAAC,KACA,IAAA/C,EAAAgB,EAAAzE,IAAA,CAAA3N,SACA,EAAAoR,GACA,MACA,iBAAA8C,EAAA9C,CAAA,MAAA8C,EAAAA,EAAArW,GAAA,CAAAuT,CAAA,KAEA+C,EAAA/C,CAAA,IADA,CAIA,EACA4B,EAAAhT,GAIAwS,EAAAtlB,IAAA,CAAA8S,IAAA,CAAAyS,EAAAvlB,IAAA,CAAA8S,GACA0T,EAAA,OACAM,EAAAhU,GAAA0S,EAAAxlB,IAAA,CAAA8S,GACA8T,EAAA9T,GAAA2S,EAAAzlB,IAAA,CAAA8S,GAslEAoU,EAAAC,SA9pEAC,CAAA,IAAAC,CAAA,MACAvD,EACAwD,EACAC,EACA,IAAAC,EACA,SAAA3D,CAAA,EAMA,OAHAyD,EAAAxD,CADAA,EAAAJ,EADA2D,EAAA7mB,MAAA,EAAAinB,EAAAC,IAAAA,EAAAD,GAAAL,KACA,EACAnF,KAAA,CAAAziB,GAAA,CACA+nB,EAAAzD,EAAA7B,KAAA,CAAA7Q,GAAA,CACAoW,EAAAG,EACAA,EAAA9D,EACA,EACA,SAAA8D,EAAA9D,CAAA,EACA,IAAA+D,EAAAN,EAAAzD,GACA,GAAA+D,EACA,OAAAA,EAEA,IAAA1D,EAAAN,EAAAC,EAAAC,GAEA,OADAyD,EAAA1D,EAAAK,GACAA,CACA,CACA,kBACA,OAAAsD,EAAA/C,EAAA9S,KAAA,MAAA3I,WACA,CACA,EAkEA,KACA,IAAA6e,EAAA7C,EAAA,UACA8C,EAAA9C,EAAA,WACA+C,EAAA/C,EAAA,QACAgD,EAAAhD,EAAA,cACAiD,EAAAjD,EAAA,eACAkD,EAAAlD,EAAA,gBACAmD,EAAAnD,EAAA,iBACAoD,EAAApD,EAAA,eACAqD,EAAArD,EAAA,YACAsD,EAAAtD,EAAA,aACAuD,EAAAvD,EAAA,aACAwD,EAAAxD,EAAA,UACAyD,EAAAzD,EAAA,OACA0D,EAAA1D,EAAA,sBACA2D,EAAA3D,EAAA,8BACA4D,EAAA5D,EAAA,SACA6D,EAAA7D,EAAA,UACAhW,EAAAgW,EAAA,WACA8D,EAAA9D,EAAA,WACA+D,EAAA/D,EAAA,YACAgE,EAAAhE,EAAA,SACAiE,EAAAjE,EAAA,SACAkE,EAAAlE,EAAA,QACAmE,EAAAnE,EAAA,SACAoE,EAAApE,EAAA,aACAqE,EAAA,8BACAC,EAAA,gDACAC,EAAA,YAAAnD,EAAA0B,EAAA,CACA0B,EAAA,KAAApD,EAAA0B,EAAA,CACA2B,EAAA,QAAA/D,EAAAE,EAAA,CACA8D,EAAA,YAAA/D,EAAAS,EAAA,CACAuD,EAAA,iGACAC,EAAA,gDACAC,EAAA,sLACAC,EAAA,mEACAC,EAAA,YAAA3D,EAAA,CACA4D,EAAA,uEACAC,EAAA,KAAAtE,EAAAS,EAAA,CACA,OACApE,UAAA,IACAK,UAAA,IACAzB,MAAA,CACAiH,OAAA,CAAAd,EAAA,CACAe,QAAA,CAAApC,EAAAE,EAAA,CACAmC,KAAA,WAAA1B,EAAAD,EAAA,CACA4B,WAAAiC,IACAhC,YAAA,CAAAJ,EAAA,CACAK,aAAA,kBAAA7B,EAAAD,EAAA,CACA+B,cAAAqB,IACApB,YAAAqB,IACApB,SAAA4B,IACA3B,UAAAyB,IACAxB,UAAA0B,IACAzB,OAAAuB,IACAtB,IAAAe,IACAd,mBAAA,CAAAb,EAAA,CACAc,2BAAA,CAAAzC,EAAAN,EAAA,CACAgD,MAAAW,IACAV,OAAAU,IACAva,QAAAib,IACAnB,QAAAU,IACAT,SAAAkB,IACAjB,MAAAiB,IACAhB,MAAAc,IACAb,KAAAe,IACAd,MAAAK,IACAJ,UAAAI,GACA,EACAxI,YAAA,CAMAkJ,OAAA,EACAA,OAAA,yBAAA9D,EAAA,EACO,CAKPjf,UAAA,cAKAgjB,QAAA,EACAA,QAAA,CAAA9D,EAAA,EACO,CAKP,gBACA,cAAA2D,GACA,EAAO,CAKP,iBACA,eAAAA,GACA,EAAO,CAKP,iBACA,6DACO,CAKP,mBACA,oCACO,CAKPI,IAAA,EACAA,IAAA,sBACO,CAKP5e,QAAA,wRAKA6e,MAAA,EACAA,MAAA,uCACO,CAKP/Y,MAAA,EACAA,MAAA,8CACO,CAKPgZ,UAAA,6BAKA,eACAC,OAAA,gDACO,CAKP,oBACAA,OAAA,IAAAZ,IAAAvD,EAAA,EACO,CAKPoE,SAAA,EACAA,SAAAlB,GACA,EAAO,CAKP,eACA,aAAAA,GACA,EAAO,CAKP,eACA,aAAAA,GACA,EAAO,CAKPmB,WAAA,EACAA,WAAApB,GACA,EAAO,CAKP,iBACA,eAAAA,GACA,EAAO,CAKP,iBACA,eAAAA,GACA,EAAO,CAKPpa,SAAA,kDAKA2Z,MAAA,EACAA,MAAA,CAAAA,EAAA,EACO,CAKP,YACA,WAAAA,EAAA,EACO,CAKP,YACA,WAAAA,EAAA,EACO,CAKP8B,MAAA,EACAA,MAAA,CAAA9B,EAAA,EACO,CAKP+B,IAAA,EACAA,IAAA,CAAA/B,EAAA,EACO,CAKPgC,IAAA,EACAA,IAAA,CAAAhC,EAAA,EACO,CAKPiC,MAAA,EACAA,MAAA,CAAAjC,EAAA,EACO,CAKPkC,OAAA,EACAA,OAAA,CAAAlC,EAAA,EACO,CAKPmC,KAAA,EACAA,KAAA,CAAAnC,EAAA,EACO,CAKPrd,WAAA,mCAKAyf,EAAA,EACAA,EAAA,QAAA/E,EAAAG,EAAA,EACO,CAMP6E,MAAA,EACAA,MAAA1B,GACA,EAAO,CAKP,mBACA2B,KAAA,2CACO,CAKP,cACAA,KAAA,kCACO,CAKPA,KAAA,EACAA,KAAA,6BAAA9E,EAAA,EACO,CAKP+E,KAAA,EACAA,KAAApB,GACA,EAAO,CAKPqB,OAAA,EACAA,OAAArB,GACA,EAAO,CAKPsB,MAAA,EACAA,MAAA,uBAAApF,EAAAG,EAAA,EACO,CAKP,cACA,aAAAW,EAAA,EACO,CAKP,kBACAuE,IAAA,SACAC,KAAA,QAAAtF,EAAAG,EAAA,EACSA,EAAA,EACF,CAKP,cACA,YAAAsD,GACA,EAAO,CAKP,YACA,UAAAA,GACA,EAAO,CAKP,cACA,aAAA3C,EAAA,EACO,CAKP,kBACAyE,IAAA,SACAD,KAAA,CAAAtF,EAAAG,EAAA,EACSA,EAAA,EACF,CAKP,cACA,YAAAsD,GACA,EAAO,CAKP,YACA,UAAAA,GACA,EAAO,CAKP,cACA,2DACO,CAKP,cACA,qCAAAtD,EAAA,EACO,CAKP,cACA,qCAAAA,EAAA,EACO,CAKPqC,IAAA,EACAA,IAAA,CAAAA,EAAA,EACO,CAKP,UACA,SAAAA,EAAA,EACO,CAKP,UACA,SAAAA,EAAA,EACO,CAKP,oBACAgD,QAAA,aAAA3B,IAAA,EACO,CAKP,kBACA,oDACO,CAKP,iBACA,0DACO,CAKP,kBACAzS,QAAA,aAAAyS,IAAA,aACO,CAKP,gBACA5gB,MAAA,+CACO,CAKP,eACAwiB,KAAA,sDACO,CAKP,kBACA,oBAAA5B,IAAA,aACO,CAKP,gBACA,6DACO,CAKP,eACA,wDACO,CAMPnR,EAAA,EACAA,EAAA,CAAAmQ,EAAA,EACO,CAKP6C,GAAA,EACAA,GAAA,CAAA7C,EAAA,EACO,CAKP8C,GAAA,EACAA,GAAA,CAAA9C,EAAA,EACO,CAKP+C,GAAA,EACAA,GAAA,CAAA/C,EAAA,EACO,CAKPgD,GAAA,EACAA,GAAA,CAAAhD,EAAA,EACO,CAKPiD,GAAA,EACAA,GAAA,CAAAjD,EAAA,EACO,CAKPkD,GAAA,EACAA,GAAA,CAAAlD,EAAA,EACO,CAKPmD,GAAA,EACAA,GAAA,CAAAnD,EAAA,EACO,CAKPoD,GAAA,EACAA,GAAA,CAAApD,EAAA,EACO,CAKPqD,EAAA,EACAA,EAAA,CAAAtD,EAAA,EACO,CAKPuD,GAAA,EACAA,GAAA,CAAAvD,EAAA,EACO,CAKPwD,GAAA,EACAA,GAAA,CAAAxD,EAAA,EACO,CAKPyD,GAAA,EACAA,GAAA,CAAAzD,EAAA,EACO,CAKP0D,GAAA,EACAA,GAAA,CAAA1D,EAAA,EACO,CAKP2D,GAAA,EACAA,GAAA,CAAA3D,EAAA,EACO,CAKP4D,GAAA,EACAA,GAAA,CAAA5D,EAAA,EACO,CAKP6D,GAAA,EACAA,GAAA,CAAA7D,EAAA,EACO,CAKP8D,GAAA,EACAA,GAAA,CAAA9D,EAAA,EACO,CAKP,YACA,WAAAM,EAAA,EACO,CAKP,sCAKA,YACA,WAAAA,EAAA,EACO,CAKP,sCAMAyD,EAAA,EACAA,EAAA,4CAAAxG,EAAA0B,EAAA,EACO,CAKP,UACA,SAAA1B,EAAA0B,EAAA,oBACO,CAKP,UACA,SAAA1B,EAAA0B,EAAA,yCACA+E,OAAA,CAAAxG,EAAA,EACSA,EAAA,EACF,CAKPyG,EAAA,EACAA,EAAA,CAAA1G,EAAA0B,EAAA,6CACO,CAKP,UACA,SAAA1B,EAAA0B,EAAA,sCACO,CAKP,UACA,SAAA1B,EAAA0B,EAAA,sCACO,CAKPhlB,KAAA,EACAA,KAAA,CAAAsjB,EAAA0B,EAAA,2BACO,CAMP,cACAiF,KAAA,QAAA1G,EAAAT,EAAA,EACO,CAKP,wDAKA,qCAKA,gBACAoH,KAAA,qFAAAhH,EAAA,EACO,CAKP,gBACAgH,KAAA,CAAAjG,EAAA,EACO,CAKP,6BAKA,0BAKA,oCAKA,6CAKA,mDAKA,yDAKAkG,SAAA,EACAA,SAAA,oDAAA7G,EAAA,EACO,CAKP,eACA,qBAAAT,EAAAK,EAAA,EACO,CAKPkH,QAAA,EACAA,QAAA,kDAAAxH,EAAAU,EAAA,EACO,CAKP,eACA,qBAAAA,EAAA,EACO,CAKP,oBACA+G,KAAA,yBAAA/G,EAAA,EACO,CAKP,wBACA+G,KAAA,sBACO,CAMP,sBACAC,YAAA,CAAAvF,EAAA,EACO,CAKP,wBACA,uBAAA7Y,EAAA,EACO,CAKP,mBACA+d,KAAA,mDACO,CAKP,eACAA,KAAA,CAAAlF,EAAA,EACO,CAKP,iBACA,gBAAA7Y,EAAA,EACO,CAKP,yEAKA,0BACAqe,WAAA,IAAAzD,IAAA,SACO,CAKP,8BACAyD,WAAA,oBAAA3H,EAAAE,EAAA,EACO,CAKP,qBACA,2BAAAF,EAAAU,EAAA,EACO,CAKP,0BACAiH,WAAA,CAAAxF,EAAA,EACO,CAKP,sEAKA,yDAKA,cACAkF,KAAA,sCACO,CAKPO,OAAA,EACAA,OAAA9D,GACA,EAAO,CAKP,mBACA+D,MAAA,2EAAAnH,EAAA,EACO,CAKPoH,WAAA,EACAA,WAAA,gEACO,CAKPC,MAAA,EACAA,MAAA,iCACO,CAKPC,QAAA,EACAA,QAAA,0BACO,CAKPrW,QAAA,EACAA,QAAA,QAAA+O,EAAA,EACO,CAMP,kBACAuH,GAAA,4BACO,CAKP,YACA,iDACO,CAMP,eACA,cAAA3e,EAAA,EACO,CAKP,cACA,4CACO,CAKP,gBACA2e,GAAA,IAAAhE,IAAAlD,EAAA,EACO,CAKP,cACAkH,GAAA,cACAC,OAAA,8BACS,EACF,CAKP,YACAD,GAAA,0BAAApH,EAAA,EACO,CAKP,aACAoH,GAAA,SACA,qDACShH,EAAA,EACF,CAKP,aACAgH,GAAA,CAAA9F,EAAA,EACO,CAKP,sBACAtlB,KAAA,CAAAomB,EAAA,EACO,CAKP,qBACAkF,IAAA,CAAAlF,EAAA,EACO,CAKP,oBACAmF,GAAA,CAAAnF,EAAA,EACO,CAKP,kBACApmB,KAAA,CAAAmmB,EAAA,EACO,CAKP,iBACAmF,IAAA,CAAAnF,EAAA,EACO,CAKP,gBACAoF,GAAA,CAAApF,EAAA,EACO,CAMPqF,QAAA,EACAA,QAAA,CAAA7F,EAAA,EACO,CAKP,cACA,aAAAA,EAAA,EACO,CAKP,cACA,aAAAA,EAAA,EACO,CAKP,cACA,aAAAA,EAAA,EACO,CAKP,cACA,aAAAA,EAAA,EACO,CAKP,cACA,aAAAA,EAAA,EACO,CAKP,cACA,aAAAA,EAAA,EACO,CAKP,eACA,cAAAA,EAAA,EACO,CAKP,eACA,cAAAA,EAAA,EACO,CAKP,eACA,cAAAA,EAAA,EACO,CAKP,eACA,cAAAA,EAAA,EACO,CAKP,eACA,cAAAA,EAAA,EACO,CAKP,eACA,cAAAA,EAAA,EACO,CAKP,eACA,cAAAA,EAAA,EACO,CAKP,eACA,cAAAA,EAAA,EACO,CAKP,aACA8F,OAAA,CAAA5F,EAAA,EACO,CAKP,eACA,YAAAA,EAAA,EACO,CAKP,eACA,YAAAA,EAAA,EACO,CAKP,eACA,YAAAA,EAAA,EACO,CAKP,eACA,YAAAA,EAAA,EACO,CAKP,eACA,YAAAA,EAAA,EACO,CAKP,eACA,YAAAA,EAAA,EACO,CAKP,eACA,YAAAA,EAAA,EACO,CAKP,eACA,YAAAA,EAAA,EACO,CAKP,mBACA,kBAAApZ,EAAA,EACO,CAKP,iBACAgf,OAAA,IAAApE,IAAA,WACO,CAKP,aACA,YAAAxB,EAAA,EACO,CAKP,wCAKA,aACA,YAAAA,EAAA,EACO,CAKP,wCAKA,mBACA,kBAAApZ,EAAA,EACO,CAKP,iBACAif,OAAArE,GACA,EAAO,CAKP,iBACAoE,OAAA,CAAA/F,EAAA,EACO,CAKP,mBACA,YAAAA,EAAA,EACO,CAKP,mBACA,YAAAA,EAAA,EACO,CAKP,mBACA,YAAAA,EAAA,EACO,CAKP,mBACA,YAAAA,EAAA,EACO,CAKP,mBACA,YAAAA,EAAA,EACO,CAKP,mBACA,YAAAA,EAAA,EACO,CAKP,mBACA,YAAAA,EAAA,EACO,CAKP,mBACA,YAAAA,EAAA,EACO,CAKP,iBACAgG,OAAA,CAAAhG,EAAA,EACO,CAKP,kBACAlZ,QAAA,OAAA6a,IAAA,EACO,CAKP,mBACA,kBAAAlE,EAAAU,EAAA,EACO,CAKP,cACArX,QAAA,CAAA2W,EAAAE,EAAA,EACO,CAKP,kBACA7W,QAAA,CAAA8Y,EAAA,EACO,CAKP,WACAqG,KAAAzE,GACA,EAAO,CAKP,8BAKA,eACAyE,KAAA,CAAArG,EAAA,EACO,CAKP,iBACA,gBAAA7Y,EAAA,EACO,CAKP,kBACA,eAAA0W,EAAAE,EAAA,EACO,CAKP,sBACA,eAAAiC,EAAA,EACO,CAMPsG,OAAA,EACAA,OAAA,mBAAA9H,EAAAQ,EAAA,EACO,CAKP,iBACAsH,OAAA,CAAApH,EAAA,EACO,CAKP/X,QAAA,EACAA,QAAA,CAAAA,EAAA,EACO,CAKP,cACA,gBAAA6a,IAAA,+BACO,CAKP,aACA,WAAAA,GACA,EAAO,CAOP5pB,OAAA,EACAA,OAAA,aACO,CAKP8nB,KAAA,EACAA,KAAA,CAAAA,EAAA,EACO,CAKPC,WAAA,EACAA,WAAA,CAAAA,EAAA,EACO,CAKPK,SAAA,EACAA,SAAA,CAAAA,EAAA,EACO,CAKP,gBACA,yBAAAhC,EAAAD,EAAA,EACO,CAKPkC,UAAA,EACAA,UAAA,CAAAA,EAAA,EACO,CAKP,eACA,cAAAC,EAAA,EACO,CAKPC,OAAA,EACAA,OAAA,CAAAA,EAAA,EACO,CAKPO,SAAA,EACAA,SAAA,CAAAA,EAAA,EACO,CAKPE,MAAA,EACAA,MAAA,CAAAA,EAAA,EACO,CAMP,oBACA,+BACO,CAKP,kBACA,iBAAAlB,EAAA,EACO,CAKP,wBACA,uBAAAC,EAAA,EACO,CAKP,sBACA,qBAAAK,EAAA,EACO,CAKP,uBACA,sBAAAC,EAAA,EACO,CAKP,wBACA,uBAAAC,EAAA,EACO,CAKP,oBACA,mBAAAC,EAAA,EACO,CAKP,qBACA,oBAAAxZ,EAAA,EACO,CAKP,sBACA,qBAAA+Z,EAAA,EACO,CAKP,mBACA,kBAAAE,EAAA,EACO,CAMP,oBACA+E,OAAA,yBACO,CAKP,mBACA,kBAAA7F,EAAA,EACO,CAKP,qBACA,oBAAAA,EAAA,EACO,CAKP,qBACA,oBAAAA,EAAA,EACO,CAKP,iBACAiG,MAAA,kBACO,CAKPC,QAAA,EACAA,QAAA,kBACO,CAMPC,WAAA,EACAA,WAAA,yDAAAlI,EAAA,EACO,CAKPmI,SAAA,EACAA,SAAAtE,GACA,EAAO,CAKPuE,KAAA,EACAA,KAAA,8BAAApI,EAAA,EACO,CAKPqI,MAAA,EACAA,MAAAxE,GACA,EAAO,CAKPyE,QAAA,EACAA,QAAA,uCAAAtI,EAAA,EACO,CAMPuI,UAAA,EACAA,UAAA,mBACO,CAKP3F,MAAA,EACAA,MAAA,CAAAA,EAAA,EACO,CAKP,YACA,WAAAA,EAAA,EACO,CAKP,YACA,WAAAA,EAAA,EACO,CAKP4F,OAAA,EACAA,OAAA,CAAA3I,EAAAG,EAAA,EACO,CAKP,gBACA,eAAAgD,EAAA,EACO,CAKP,gBACA,eAAAA,EAAA,EACO,CAKP,WACA,UAAAF,EAAA,EACO,CAKP,WACA,UAAAA,EAAA,EACO,CAKP,qBACA2F,OAAA,4FAAAzI,EAAA,EACO,CAMP0I,OAAA,EACAA,OAAA,QAAAjH,EAAA,EACO,CAKPkH,WAAA,EACAA,WAAA,iBACO,CAKPC,OAAA,EACAA,OAAA,iYAAA5I,EAAA,EACO,CAKP,gBACA6I,MAAA,CAAApH,EAAA,EACO,CAKP,mBACA,kCACO,CAKPqH,OAAA,EACAA,OAAA,qBACO,CAKP,oBACAC,OAAA,mBACO,CAKP,aACA,WAAA3F,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,aACA,WAAAA,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,cACA,YAAAA,GACA,EAAO,CAKP,eACA4F,KAAA,uCACO,CAKP,cACAA,KAAA,qBACO,CAKP,cACAA,KAAA,yBACO,CAKP,oBACAA,KAAA,2BACO,CAKPC,MAAA,EACAA,MAAA,gCACO,CAKP,YACA,kCACO,CAKP,YACA,+BACO,CAKP,gCAKAznB,OAAA,EACAA,OAAA,8BACO,CAKP,gBACA,sDAAAwe,EAAA,EACO,CAMP1H,KAAA,EACAA,KAAA,CAAAmJ,EAAA,SACO,CAKP,aACApJ,OAAA,CAAAiH,EAAAE,EAAAI,EAAA,EACO,CAKPvH,OAAA,EACAA,OAAA,CAAAoJ,EAAA,SACO,CAMPyH,GAAA,0BAKA,wBACA,uCACO,EAEPnQ,uBAAA,CACAqL,SAAA,4BACAC,WAAA,gCACA7B,MAAA,kEACA,2BACA,2BACAsC,KAAA,0BACAzC,IAAA,kBACA9P,EAAA,0CACAgT,GAAA,YACAC,GAAA,YACAO,EAAA,0CACAC,GAAA,YACAC,GAAA,YACAvpB,KAAA,UACA,wBACA,0FACA,6BACA,kCACA,4BACA,6BACA,8BACA,oCACAirB,QAAA,kLACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,yDACA,2FACA,yCACA,yCACA,uHACA,qDACA,qDACA,6GACA,sCACA,sCACA,6GACA,sCACA,sCACAsB,MAAA,iCACA,oBACA,oBACA,sBAEAjQ,+BAAA,CACA,wBAEA,CACA","sources":["webpack://_N_E/./node_modules/next/dist/api/link.js","webpack://_N_E/./node_modules/@radix-ui/primitive/dist/index.mjs","webpack://_N_E/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://_N_E/./node_modules/@radix-ui/react-context/dist/index.mjs","webpack://_N_E/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://_N_E/./node_modules/@radix-ui/react-id/dist/index.mjs","webpack://_N_E/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://_N_E/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://_N_E/./node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://_N_E/./node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://_N_E/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","webpack://_N_E/../src/DismissableLayer.tsx","webpack://_N_E/../src/FocusScope.tsx","webpack://_N_E/../src/Portal.tsx","webpack://_N_E/../src/Presence.tsx","webpack://_N_E/../src/useStateMachine.tsx","webpack://_N_E/../src/FocusGuards.tsx","webpack://_N_E/./node_modules/aria-hidden/dist/es2015/index.js","webpack://_N_E/../src/Dialog.tsx","webpack://_N_E/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","webpack://_N_E/./node_modules/class-variance-authority/dist/index.mjs","webpack://_N_E/./node_modules/react-icons/lib/iconsManifest.mjs","webpack://_N_E/./node_modules/react-icons/lib/iconContext.mjs","webpack://_N_E/./node_modules/react-icons/lib/iconBase.mjs","webpack://_N_E/./node_modules/react-icons/lib/index.mjs","webpack://_N_E/./node_modules/tailwind-merge/dist/bundle-mjs.mjs"],"sourcesContent":["export { default } from \"../client/link\";\nexport * from \"../client/link\";\n\n//# sourceMappingURL=link.js.map","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-escape-keydown/src/useEscapeKeydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n React.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { Primitive, dispatchDiscreteCustomEvent } from '@radix-ui/react-primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useEscapeKeydown } from '@radix-ui/react-use-escape-keydown';\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayer\n * -----------------------------------------------------------------------------------------------*/\n\nconst DISMISSABLE_LAYER_NAME = 'DismissableLayer';\nconst CONTEXT_UPDATE = 'dismissableLayer.update';\nconst POINTER_DOWN_OUTSIDE = 'dismissableLayer.pointerDownOutside';\nconst FOCUS_OUTSIDE = 'dismissableLayer.focusOutside';\n\nlet originalBodyPointerEvents: string;\n\nconst DismissableLayerContext = React.createContext({\n layers: new Set(),\n layersWithOutsidePointerEventsDisabled: new Set(),\n branches: new Set(),\n});\n\ntype DismissableLayerElement = React.ElementRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface DismissableLayerProps extends PrimitiveDivProps {\n /**\n * When `true`, hover/focus/click interactions will be disabled on elements outside\n * the `DismissableLayer`. Users will need to click twice on outside elements to\n * interact with them: once to close the `DismissableLayer`, and again to trigger the element.\n */\n disableOutsidePointerEvents?: boolean;\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void;\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void;\n /**\n * Event handler called when the focus moves outside of the `DismissableLayer`.\n * Can be prevented.\n */\n onFocusOutside?: (event: FocusOutsideEvent) => void;\n /**\n * Event handler called when an interaction happens outside the `DismissableLayer`.\n * Specifically, when a `pointerdown` event happens outside or focus moves outside of it.\n * Can be prevented.\n */\n onInteractOutside?: (event: PointerDownOutsideEvent | FocusOutsideEvent) => void;\n /**\n * Handler called when the `DismissableLayer` should be dismissed\n */\n onDismiss?: () => void;\n}\n\nconst DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node) => setNode(node));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1); // prettier-ignore\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled); // prettier-ignore\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target as HTMLElement;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n\n const focusOutside = useFocusOutside((event) => {\n const target = event.target as HTMLElement;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = 'none';\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (\n disableOutsidePointerEvents &&\n context.layersWithOutsidePointerEventsDisabled.size === 1\n ) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n\n /**\n * We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect\n * because a change to `disableOutsidePointerEvents` would remove this layer from the stack\n * and add it to the end again so the layering order wouldn't be _creation order_.\n * We only want them to be removed from context stacks when unmounted.\n */\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n\n return (\n \n );\n }\n);\n\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayerBranch\n * -----------------------------------------------------------------------------------------------*/\n\nconst BRANCH_NAME = 'DismissableLayerBranch';\n\ntype DismissableLayerBranchElement = React.ElementRef;\ninterface DismissableLayerBranchProps extends PrimitiveDivProps {}\n\nconst DismissableLayerBranch = React.forwardRef<\n DismissableLayerBranchElement,\n DismissableLayerBranchProps\n>((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n\n return ;\n});\n\nDismissableLayerBranch.displayName = BRANCH_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PointerDownOutsideEvent = CustomEvent<{ originalEvent: PointerEvent }>;\ntype FocusOutsideEvent = CustomEvent<{ originalEvent: FocusEvent }>;\n\n/**\n * Listens for `pointerdown` outside a react subtree. We use `pointerdown` rather than `pointerup`\n * to mimic layer dismissing behaviour present in OS.\n * Returns props to pass to the node we want to check for outside events.\n */\nfunction usePointerDownOutside(\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void,\n ownerDocument: Document = globalThis?.document\n) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside) as EventListener;\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {});\n\n React.useEffect(() => {\n const handlePointerDown = (event: PointerEvent) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n\n function handleAndDispatchPointerDownOutsideEvent() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n }\n\n /**\n * On touch devices, we need to wait for a click event because browsers implement\n * a ~350ms delay between the time the user stops touching the display and when the\n * browser executres events. We need to ensure we don't reactivate pointer-events within\n * this timeframe otherwise the browser may execute events that should have been prevented.\n *\n * Additionally, this also lets us deal automatically with cancellations when a click event\n * isn't raised because the page was considered scrolled/drag-scrolled, long-pressed, etc.\n *\n * This is why we also continuously remove the previous listener, because we cannot be\n * certain that it was raised, and therefore cleaned-up.\n */\n if (event.pointerType === 'touch') {\n ownerDocument.removeEventListener('click', handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;\n ownerDocument.addEventListener('click', handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent();\n }\n } else {\n // We need to remove the event listener in case the outside click has been canceled.\n // See: https://github.com/radix-ui/primitives/issues/2171\n ownerDocument.removeEventListener('click', handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n /**\n * if this hook executes in a component that mounts via a `pointerdown` event, the event\n * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid\n * this by delaying the event listener registration on the document.\n * This is not React specific, but rather how the DOM works, ie:\n * ```\n * button.addEventListener('pointerdown', () => {\n * console.log('I will log');\n * document.addEventListener('pointerdown', () => {\n * console.log('I will also log');\n * })\n * });\n */\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener('pointerdown', handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener('pointerdown', handlePointerDown);\n ownerDocument.removeEventListener('click', handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => (isPointerInsideReactTreeRef.current = true),\n };\n}\n\n/**\n * Listens for when focus happens outside a react subtree.\n * Returns props to pass to the root (node) of the subtree we want to check.\n */\nfunction useFocusOutside(\n onFocusOutside?: (event: FocusOutsideEvent) => void,\n ownerDocument: Document = globalThis?.document\n) {\n const handleFocusOutside = useCallbackRef(onFocusOutside) as EventListener;\n const isFocusInsideReactTreeRef = React.useRef(false);\n\n React.useEffect(() => {\n const handleFocus = (event: FocusEvent) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false,\n });\n }\n };\n ownerDocument.addEventListener('focusin', handleFocus);\n return () => ownerDocument.removeEventListener('focusin', handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n\n return {\n onFocusCapture: () => (isFocusInsideReactTreeRef.current = true),\n onBlurCapture: () => (isFocusInsideReactTreeRef.current = false),\n };\n}\n\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\n\nfunction handleAndDispatchCustomEvent(\n name: string,\n handler: ((event: E) => void) | undefined,\n detail: { originalEvent: OriginalEvent } & (E extends CustomEvent ? D : never),\n { discrete }: { discrete: boolean }\n) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler as EventListener, { once: true });\n\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\n\nconst Root = DismissableLayer;\nconst Branch = DismissableLayerBranch;\n\nexport {\n DismissableLayer,\n DismissableLayerBranch,\n //\n Root,\n Branch,\n};\nexport type { DismissableLayerProps };\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\n\nconst AUTOFOCUS_ON_MOUNT = 'focusScope.autoFocusOnMount';\nconst AUTOFOCUS_ON_UNMOUNT = 'focusScope.autoFocusOnUnmount';\nconst EVENT_OPTIONS = { bubbles: false, cancelable: true };\n\ntype FocusableTarget = HTMLElement | { focus(): void };\n\n/* -------------------------------------------------------------------------------------------------\n * FocusScope\n * -----------------------------------------------------------------------------------------------*/\n\nconst FOCUS_SCOPE_NAME = 'FocusScope';\n\ntype FocusScopeElement = React.ElementRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface FocusScopeProps extends PrimitiveDivProps {\n /**\n * When `true`, tabbing from last item will focus first tabbable\n * and shift+tab from first item will focus last tababble.\n * @defaultValue false\n */\n loop?: boolean;\n\n /**\n * When `true`, focus cannot escape the focus scope via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapped?: boolean;\n\n /**\n * Event handler called when auto-focusing on mount.\n * Can be prevented.\n */\n onMountAutoFocus?: (event: Event) => void;\n\n /**\n * Event handler called when auto-focusing on unmount.\n * Can be prevented.\n */\n onUnmountAutoFocus?: (event: Event) => void;\n}\n\nconst FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n },\n }).current;\n\n // Takes care of trapping focus if focus is moved outside programmatically for example\n React.useEffect(() => {\n if (trapped) {\n function handleFocusIn(event: FocusEvent) {\n if (focusScope.paused || !container) return;\n const target = event.target as HTMLElement | null;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n\n // A `focusout` event with a `null` `relatedTarget` will happen in at least two cases:\n //\n // 1. When the user switches app/tabs/windows/the browser itself loses focus.\n // 2. In Google Chrome, when the focused element is removed from the DOM.\n //\n // We let the browser do its thing here because:\n //\n // 1. The browser already keeps a memory of what's focused for when the page gets refocused.\n // 2. In Google Chrome, if we try to focus the deleted focused element (as per below), it\n // throws the CPU to 100%, so we avoid doing anything for this reason here too.\n if (relatedTarget === null) return;\n\n // If the focus has moved to an actual legitimate element (`relatedTarget !== null`)\n // that is outside the container, we move focus to the last valid focused element inside.\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }\n\n // When the focused element gets removed from the DOM, browsers move focus\n // back to the document.body. In this case, we move focus to the container\n // to keep focus trapped correctly.\n function handleMutations(mutations: MutationRecord[]) {\n const focusedElement = document.activeElement as HTMLElement | null;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n }\n\n document.addEventListener('focusin', handleFocusIn);\n document.addEventListener('focusout', handleFocusOut);\n const mutationObserver = new MutationObserver(handleMutations);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n\n return () => {\n document.removeEventListener('focusin', handleFocusIn);\n document.removeEventListener('focusout', handleFocusOut);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement as HTMLElement | null;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n\n // We hit a react bug (fixed in v17) with focusing in unmount.\n // We need to delay the focus a little to get around it for now.\n // See: https://github.com/facebook/react/issues/17894\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n // we need to remove the listener after we `dispatchEvent`\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n\n // Takes care of looping focus (when tabbing whilst at the edges)\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n\n const isTabKey = event.key === 'Tab' && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement as HTMLElement | null;\n\n if (isTabKey && focusedElement) {\n const container = event.currentTarget as HTMLElement;\n const [first, last] = getTabbableEdges(container);\n const hasTabbableElementsInside = first && last;\n\n // we can only wrap focus if we have tabbable edges\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n\n return (\n \n );\n});\n\nFocusScope.displayName = FOCUS_SCOPE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Attempts focusing the first element in a list of candidates.\n * Stops when focus has actually moved.\n */\nfunction focusFirst(candidates: HTMLElement[], { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\n\n/**\n * Returns the first and last tabbable elements inside a container.\n */\nfunction getTabbableEdges(container: HTMLElement) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last] as const;\n}\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nfunction getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n\n/**\n * Returns the first visible element in a list.\n * NOTE: Only checks visibility up to the `container`.\n */\nfunction findVisible(elements: HTMLElement[], container: HTMLElement) {\n for (const element of elements) {\n // we stop checking if it's hidden at the `container` level (excluding)\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\n\nfunction isHidden(node: HTMLElement, { upTo }: { upTo?: HTMLElement }) {\n if (getComputedStyle(node).visibility === 'hidden') return true;\n while (node) {\n // we stop at `upTo` (excluding it)\n if (upTo !== undefined && node === upTo) return false;\n if (getComputedStyle(node).display === 'none') return true;\n node = node.parentElement as HTMLElement;\n }\n return false;\n}\n\nfunction isSelectableInput(element: any): element is FocusableTarget & { select: () => void } {\n return element instanceof HTMLInputElement && 'select' in element;\n}\n\nfunction focus(element?: FocusableTarget | null, { select = false } = {}) {\n // only focus if that element is focusable\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n // NOTE: we prevent scrolling on focus, to minimize jarring transitions for users\n element.focus({ preventScroll: true });\n // only select if its not the same element, it supports selection and we need to select\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\n\n/* -------------------------------------------------------------------------------------------------\n * FocusScope stack\n * -----------------------------------------------------------------------------------------------*/\n\ntype FocusScopeAPI = { paused: boolean; pause(): void; resume(): void };\nconst focusScopesStack = createFocusScopesStack();\n\nfunction createFocusScopesStack() {\n /** A stack of focus scopes, with the active one at the top */\n let stack: FocusScopeAPI[] = [];\n\n return {\n add(focusScope: FocusScopeAPI) {\n // pause the currently active focus scope (at the top of the stack)\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n // remove in case it already exists (because we'll re-add it at the top of the stack)\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n\n remove(focusScope: FocusScopeAPI) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n },\n };\n}\n\nfunction arrayRemove(array: T[], item: T) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\n\nfunction removeLinks(items: HTMLElement[]) {\n return items.filter((item) => item.tagName !== 'A');\n}\n\nconst Root = FocusScope;\n\nexport {\n FocusScope,\n //\n Root,\n};\nexport type { FocusScopeProps };\n","import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n/* -------------------------------------------------------------------------------------------------\n * Portal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'Portal';\n\ntype PortalElement = React.ElementRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface PortalProps extends PrimitiveDivProps {\n /**\n * An optional container where the portaled content should be appended.\n */\n container?: Element | DocumentFragment | null;\n}\n\nconst Portal = React.forwardRef((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || (mounted && globalThis?.document?.body);\n return container\n ? ReactDOM.createPortal(, container)\n : null;\n});\n\nPortal.displayName = PORTAL_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Portal;\n\nexport {\n Portal,\n //\n Root,\n};\nexport type { PortalProps };\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useStateMachine } from './useStateMachine';\n\ninterface PresenceProps {\n children: React.ReactElement | ((props: { present: boolean }) => React.ReactElement);\n present: boolean;\n}\n\nconst Presence: React.FC = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n\n const child = (\n typeof children === 'function'\n ? children({ present: presence.isPresent })\n : React.Children.only(children)\n ) as React.ReactElement;\n\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === 'function';\n return forceMount || presence.isPresent ? React.cloneElement(child, { ref }) : null;\n};\n\nPresence.displayName = 'Presence';\n\n/* -------------------------------------------------------------------------------------------------\n * usePresence\n * -----------------------------------------------------------------------------------------------*/\n\nfunction usePresence(present: boolean) {\n const [node, setNode] = React.useState();\n const stylesRef = React.useRef({} as any);\n const prevPresentRef = React.useRef(present);\n const prevAnimationNameRef = React.useRef('none');\n const initialState = present ? 'mounted' : 'unmounted';\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended',\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted',\n },\n unmounted: {\n MOUNT: 'mounted',\n },\n });\n\n React.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === 'mounted' ? currentAnimationName : 'none';\n }, [state]);\n\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n\n if (present) {\n send('MOUNT');\n } else if (currentAnimationName === 'none' || styles?.display === 'none') {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly\n send('UNMOUNT');\n } else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currentAnimationName;\n\n if (wasPresent && isAnimating) {\n send('ANIMATION_OUT');\n } else {\n send('UNMOUNT');\n }\n }\n\n prevPresentRef.current = present;\n }\n }, [present, send]);\n\n useLayoutEffect(() => {\n if (node) {\n let timeoutId: number;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n // With React 18 concurrency this update is applied a frame after the\n // animation ends, creating a flash of visible content. By setting the\n // animation fill mode to \"forwards\", we force the node to keep the\n // styles of the last keyframe, removing the flash.\n //\n // Previously we flushed the update via ReactDom.flushSync, but with\n // exit animations this resulted in the node being removed from the\n // DOM before the synthetic animationEnd event was dispatched, meaning\n // user-provided event handlers would not be called.\n // https://github.com/radix-ui/primitives/pull/1849\n send('ANIMATION_END');\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = 'forwards';\n // Reset the style after the node had time to unmount (for cases\n // where the component chooses not to unmount). Doing this any\n // sooner than `setTimeout` (e.g. with `requestAnimationFrame`)\n // still causes a flash.\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === 'forwards') {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event: AnimationEvent) => {\n if (event.target === node) {\n // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener('animationstart', handleAnimationStart);\n node.addEventListener('animationcancel', handleAnimationEnd);\n node.addEventListener('animationend', handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener('animationstart', handleAnimationStart);\n node.removeEventListener('animationcancel', handleAnimationEnd);\n node.removeEventListener('animationend', handleAnimationEnd);\n };\n } else {\n // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n send('ANIMATION_END');\n }\n }, [node, send]);\n\n return {\n isPresent: ['mounted', 'unmountSuspended'].includes(state),\n ref: React.useCallback((node: HTMLElement) => {\n if (node) stylesRef.current = getComputedStyle(node);\n setNode(node);\n }, []),\n };\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getAnimationName(styles?: CSSStyleDeclaration) {\n return styles?.animationName || 'none';\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get;\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element as any).ref;\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get;\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref;\n}\n\nexport { Presence };\nexport type { PresenceProps };\n","import * as React from 'react';\n\ntype Machine = { [k: string]: { [k: string]: S } };\ntype MachineState = keyof T;\ntype MachineEvent = keyof UnionToIntersection;\n\n// 🤯 https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection = (T extends any ? (x: T) => any : never) extends (x: infer R) => any\n ? R\n : never;\n\nexport function useStateMachine(\n initialState: MachineState,\n machine: M & Machine>\n) {\n return React.useReducer((state: MachineState, event: MachineEvent): MachineState => {\n const nextState = (machine[state] as any)[event];\n return nextState ?? state;\n }, initialState);\n}\n","import * as React from 'react';\n\n/** Number of components which have requested interest to have focus guards */\nlet count = 0;\n\nfunction FocusGuards(props: any) {\n useFocusGuards();\n return props.children;\n}\n\n/**\n * Injects a pair of focus guards at the edges of the whole DOM tree\n * to ensure `focusin` & `focusout` events can be caught consistently.\n */\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll('[data-radix-focus-guard]');\n document.body.insertAdjacentElement('afterbegin', edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement('beforeend', edgeGuards[1] ?? createFocusGuard());\n count++;\n\n return () => {\n if (count === 1) {\n document.querySelectorAll('[data-radix-focus-guard]').forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n}\n\nfunction createFocusGuard() {\n const element = document.createElement('span');\n element.setAttribute('data-radix-focus-guard', '');\n element.tabIndex = 0;\n element.style.outline = 'none';\n element.style.opacity = '0';\n element.style.position = 'fixed';\n element.style.pointerEvents = 'none';\n return element;\n}\n\nconst Root = FocusGuards;\n\nexport {\n FocusGuards,\n //\n Root,\n //\n useFocusGuards,\n};\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide ariaLive elements - https://github.com/theKashey/aria-hidden/issues/10\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live]')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContext, createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\nimport { Slot } from '@radix-ui/react-slot';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst DIALOG_NAME = 'Dialog';\n\ntype ScopedProps

= P & { __scopeDialog?: Scope };\nconst [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\n\ntype DialogContextValue = {\n triggerRef: React.RefObject;\n contentRef: React.RefObject;\n contentId: string;\n titleId: string;\n descriptionId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n};\n\nconst [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\n\ninterface DialogProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n}\n\nconst Dialog: React.FC = (props: ScopedProps) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true,\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n setOpen((prevOpen) => !prevOpen), [setOpen])}\n modal={modal}\n >\n {children}\n \n );\n};\n\nDialog.displayName = DIALOG_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DialogTrigger';\n\ntype DialogTriggerElement = React.ElementRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface DialogTriggerProps extends PrimitiveButtonProps {}\n\nconst DialogTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return (\n \n );\n }\n);\n\nDialogTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'DialogPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef;\ninterface DialogPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogPortal: React.FC = (props: ScopedProps) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return (\n \n {React.Children.map(children, (child) => (\n \n \n {child}\n \n \n ))}\n \n );\n};\n\nDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'DialogOverlay';\n\ntype DialogOverlayElement = DialogOverlayImplElement;\ninterface DialogOverlayProps extends DialogOverlayImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogOverlay = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? (\n \n \n \n ) : null;\n }\n);\n\nDialogOverlay.displayName = OVERLAY_NAME;\n\ntype DialogOverlayImplElement = React.ElementRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface DialogOverlayImplProps extends PrimitiveDivProps {}\n\nconst DialogOverlayImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n \n \n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DialogContent';\n\ntype DialogContentElement = DialogContentTypeElement;\ninterface DialogContentProps extends DialogContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return (\n \n {context.modal ? (\n \n ) : (\n \n )}\n \n );\n }\n);\n\nDialogContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentTypeElement = DialogContentImplElement;\ninterface DialogContentTypeProps\n extends Omit {}\n\nconst DialogContentModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n {\n event.preventDefault();\n context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault();\n })}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) =>\n event.preventDefault()\n )}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst DialogContentNonModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n\n return (\n {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === 'pointerdown') {\n hasPointerDownOutsideRef.current = true;\n }\n }\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (event.detail.originalEvent.type === 'focusin' && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentImplElement = React.ElementRef;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef;\ntype FocusScopeProps = React.ComponentPropsWithoutRef;\ninterface DialogContentImplProps extends Omit {\n /**\n * When `true`, focus cannot escape the `Content` via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst DialogContentImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n\n // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (because of the `Portal`)\n useFocusGuards();\n\n return (\n <>\n \n context.onOpenChange(false)}\n />\n \n {process.env.NODE_ENV !== 'production' && (\n <>\n \n \n \n )}\n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'DialogTitle';\n\ntype DialogTitleElement = React.ElementRef;\ntype PrimitiveHeading2Props = React.ComponentPropsWithoutRef;\ninterface DialogTitleProps extends PrimitiveHeading2Props {}\n\nconst DialogTitle = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return ;\n }\n);\n\nDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'DialogDescription';\n\ntype DialogDescriptionElement = React.ElementRef;\ntype PrimitiveParagraphProps = React.ComponentPropsWithoutRef;\ninterface DialogDescriptionProps extends PrimitiveParagraphProps {}\n\nconst DialogDescription = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return ;\n }\n);\n\nDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'DialogClose';\n\ntype DialogCloseElement = React.ElementRef;\ninterface DialogCloseProps extends PrimitiveButtonProps {}\n\nconst DialogClose = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return (\n context.onOpenChange(false))}\n />\n );\n }\n);\n\nDialogClose.displayName = CLOSE_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst TITLE_WARNING_NAME = 'DialogTitleWarning';\n\nconst [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: 'dialog',\n});\n\ntype TitleWarningProps = { titleId?: string };\n\nconst TitleWarning: React.FC = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n\n return null;\n};\n\nconst DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject;\n descriptionId?: string;\n};\n\nconst DescriptionWarning: React.FC = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute('aria-describedby');\n // if we have an id and the user hasn't set aria-describedby={undefined}\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n\n return null;\n};\n\nconst Root = Dialog;\nconst Trigger = DialogTrigger;\nconst Portal = DialogPortal;\nconst Overlay = DialogOverlay;\nconst Content = DialogContent;\nconst Title = DialogTitle;\nconst Description = DialogDescription;\nconst Close = DialogClose;\n\nexport {\n createDialogScope,\n //\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogContent,\n DialogTitle,\n DialogDescription,\n DialogClose,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Title,\n Description,\n Close,\n //\n WarningProvider,\n};\nexport type {\n DialogProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","export var IconsManifest = [\n {\n \"id\": \"ci\",\n \"name\": \"Circum Icons\",\n \"projectUrl\": \"https://circumicons.com/\",\n \"license\": \"MPL-2.0 license\",\n \"licenseUrl\": \"https://github.com/Klarr-Agency/Circum-Icons/blob/main/LICENSE\"\n },\n {\n \"id\": \"fa\",\n \"name\": \"Font Awesome 5\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"fa6\",\n \"name\": \"Font Awesome 6\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n },\n {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n },\n {\n \"id\": \"lu\",\n \"name\": \"Lucide\",\n \"projectUrl\": \"https://lucide.dev/\",\n \"license\": \"ISC\",\n \"licenseUrl\": \"https://github.com/lucide-icons/lucide/blob/main/LICENSE\"\n },\n {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n },\n {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n },\n {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"hi2\",\n \"name\": \"Heroicons 2\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n },\n {\n \"id\": \"sl\",\n \"name\": \"Simple Line Icons\",\n \"projectUrl\": \"https://thesabbir.github.io/simple-line-icons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://github.com/Keyamoon/IcoMoon-Free/blob/master/License.txt\"\n },\n {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/atisawd/boxicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"tb\",\n \"name\": \"Tabler Icons\",\n \"projectUrl\": \"https://github.com/tabler/tabler-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"tfi\",\n \"name\": \"Themify Icons\",\n \"projectUrl\": \"https://github.com/lykmapipo/themify-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/thecreation/standard-icons/blob/master/modules/themify-icons/LICENSE\"\n },\n {\n \"id\": \"rx\",\n \"name\": \"Radix Icons\",\n \"projectUrl\": \"https://icons.radix-ui.com\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/radix-ui/icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"pi\",\n \"name\": \"Phosphor Icons\",\n \"projectUrl\": \"https://github.com/phosphor-icons/core\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/phosphor-icons/core/blob/main/LICENSE\"\n },\n {\n \"id\": \"lia\",\n \"name\": \"Icons8 Line Awesome\",\n \"projectUrl\": \"https://icons8.com/line-awesome\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/icons8/line-awesome/blob/master/LICENSE.md\"\n }\n]","import React from \"react\";\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && /*#__PURE__*/React.createContext(DefaultContext);","var _excluded = [\"attr\", \"size\", \"title\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React from \"react\";\nimport { IconContext, DefaultContext } from \"./iconContext.mjs\";\nfunction Tree2Element(tree) {\n return tree && tree.map((node, i) => /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: i\n }, node.attr), Tree2Element(node.child)));\n}\nexport function GenIcon(data) {\n return props => /*#__PURE__*/React.createElement(IconBase, _extends({\n attr: _objectSpread({}, data.attr)\n }, props), Tree2Element(data.child));\n}\nexport function IconBase(props) {\n var elem = conf => {\n var {\n attr,\n size,\n title\n } = props,\n svgProps = _objectWithoutProperties(props, _excluded);\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + \" \" : \"\") + props.className;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: _objectSpread(_objectSpread({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && /*#__PURE__*/React.createElement(\"title\", null, title), props.children);\n };\n return IconContext !== undefined ? /*#__PURE__*/React.createElement(IconContext.Consumer, null, conf => elem(conf)) : elem(DefaultContext);\n}","export * from \"./iconsManifest.mjs\";\nexport * from \"./iconBase.mjs\";\nexport * from \"./iconContext.mjs\";","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n"],"names":["stack","originalBodyPointerEvents","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","defaultPrevented","composeRefs","refs","forEach","ref","node","current","useComposedRefs","react","useCallback","useLayoutEffect2","Boolean","document","useLayoutEffect","useReactId","react_namespaceObject","toString","count","useId","deterministicId","id","setId","useState","reactId","String","useCallbackRef","callback","callbackRef","useRef","useEffect","useMemo","args","Slot","forwardRef","props","forwardedRef","children","slotProps","childrenArray","Children","toArray","slottable","find","isSlottable","newElement","newChildren","map","child","only","isValidElement","jsx_runtime","jsx","SlotClone","cloneElement","displayName","getter","mayWarn","childrenRef","Object","getOwnPropertyDescriptor","element","get","isReactWarning","mergeProps","childProps","overrideProps","propName","slotPropValue","childPropValue","test","filter","join","Slottable","Fragment","type","Primitive","NODES","reduce","primitive","Node","asChild","primitiveProps","Comp","window","Symbol","for","CONTEXT_UPDATE","DismissableLayerContext","React","layers","Set","layersWithOutsidePointerEventsDisabled","branches","DismissableLayer","globalThis","disableOutsidePointerEvents","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","layerProps","context","setNode","ownerDocument","force","composedRefs","Array","from","highestLayerWithOutsidePointerEventsDisabled","slice","highestLayerWithOutsidePointerEventsDisabledIndex","indexOf","index","isBodyPointerEventsDisabled","size","isPointerEventsEnabled","pointerDownOutside","usePointerDownOutside","handlePointerDownOutside","isPointerInsideReactTreeRef","handleClickRef","handlePointerDown","target","handleAndDispatchPointerDownOutsideEvent","handleAndDispatchCustomEvent","eventDetail","discrete","originalEvent","pointerType","removeEventListener","addEventListener","once","timerId","setTimeout","clearTimeout","onPointerDownCapture","isPointerDownOnBranch","some","branch","contains","focusOutside","useFocusOutside","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","onFocusCapture","onBlurCapture","useEscapeKeydown","onEscapeKeyDownProp","handleKeyDown","key","capture","preventDefault","body","style","pointerEvents","add","dispatchUpdate","delete","handleUpdate","div","CustomEvent","dispatchEvent","name","handler","detail","param","bubbles","cancelable","react_dom","flushSync","DismissableLayerBranch","AUTOFOCUS_ON_MOUNT","AUTOFOCUS_ON_UNMOUNT","EVENT_OPTIONS","FocusScope","loop","trapped","onMountAutoFocus","onMountAutoFocusProp","onUnmountAutoFocus","onUnmountAutoFocusProp","scopeProps","container","setContainer","lastFocusedElementRef","focusScope","paused","pause","resume","handleFocusIn","focus","select","handleFocusOut","relatedTarget","mutationObserver","MutationObserver","mutations","focusedElement","activeElement","mutation","removedNodes","length","observe","childList","subtree","disconnect","focusScopesStack","previouslyFocusedElement","mountEvent","focusFirst","candidates","arguments","candidate","items","item","tagName","unmountEvent","remove","isTabKey","altKey","ctrlKey","metaKey","currentTarget","first","last","getTabbableEdges","getTabbableCandidates","findVisible","reverse","shiftKey","tabIndex","onKeyDown","nodes","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","isHiddenInput","disabled","hidden","FILTER_SKIP","FILTER_ACCEPT","nextNode","push","currentNode","elements","isHidden","upTo","getComputedStyle","visibility","display","parentElement","preventScroll","HTMLInputElement","activeFocusScope","arrayRemove","unshift","array","updatedArray","splice","Portal","containerProp","portalProps","mounted","setMounted","ReactDOM","Presence","present","presence","usePresence","initialState","machine","React2","stylesRef","prevPresentRef","prevAnimationNameRef","state","send","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","nextState","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","defaultView","handleAnimationEnd","isCurrentAnimation","includes","animationName","currentFillMode","animationFillMode","handleAnimationStart","isPresent","forceMount","createFocusGuard","createElement","setAttribute","outline","opacity","position","counterMap","WeakMap","uncontrolledNodes","markerMap","lockCount","unwrapHost","host","parentNode","applyAttributeToOthers","originalTarget","markerName","controlAttribute","targets","isArray","parent","correctedTarget","console","error","x","markerCounter","hiddenNodes","elementsToKeep","elementsToStop","keep","el","has","deep","prototype","call","attr","getAttribute","alreadyHidden","counterValue","markerValue","set","e","clear","removeAttribute","hideOthers","activeParentNode","sampleTarget","apply","querySelectorAll","DIALOG_NAME","createDialogContext","createDialogScope","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createScope","scopeContexts","createContext","defaultContext","scope","contexts","rootComponentName","BaseContext","Provider","Context","value","values","consumerName","useContext","composeContextScopes","scopes","baseScope","scopeHooks","useScope","createScope2","overrideScopes","nextScopes","nextScopes2","currentScope","DialogProvider","useDialogContext","Dialog","__scopeDialog","open","openProp","defaultOpen","onOpenChange","modal","triggerRef","contentRef","setOpen","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","uncontrolledState","prevValueRef","handleChange","isControlled","value2","nextValue","setter","contentId","titleId","descriptionId","onOpenToggle","prevOpen","TRIGGER_NAME","DialogTrigger","triggerProps","composedTriggerRef","button","getState","onClick","PORTAL_NAME","PortalProvider","usePortalContext","DialogPortal","PortalPrimitive","OVERLAY_NAME","DialogOverlay","portalContext","overlayProps","DialogOverlayImpl","RemoveScroll","as","allowPinchZoom","shards","CONTENT_NAME","DialogContent","contentProps","DialogContentModal","DialogContentNonModal","content","DialogContentImpl","trapFocus","onCloseAutoFocus","ctrlLeftClick","hasInteractedOutsideRef","hasPointerDownOutsideRef","targetIsTrigger","onOpenAutoFocus","edgeGuards","insertAdjacentElement","jsxs","role","TitleWarning","DescriptionWarning","TITLE_NAME","DialogTitle","titleProps","h2","DESCRIPTION_NAME","DialogDescription","descriptionProps","p","CLOSE_NAME","DialogClose","closeProps","TITLE_WARNING_NAME","WarningProvider","useWarningContext","contentName","titleName","docsSlug","titleWarningContext","MESSAGE","concat","getElementById","descriptionWarningContext","describedById","warn","Root","Trigger","Overlay","Content","Title","Description","Close","falsyToString","cx","t","f","n","r","cva","base","config","variants","class","className","defaultVariants","getVariantClassNames","keys","variantProp","variant","defaultVariantProp","variantKey","propsWithoutUndefined","entries","acc","undefined","compoundVariants","param1","cvClass","cvClassName","compoundVariantOptions","every","DefaultContext","color","IconContext","_excluded","_extends","assign","bind","i","source","hasOwnProperty","ownKeys","getOwnPropertySymbols","o","enumerable","_objectSpread","_toPropertyKey","_toPrimitive","toPrimitive","Number","defineProperty","configurable","writable","obj","getOwnPropertyDescriptors","defineProperties","GenIcon","data","IconBase","Tree2Element","tree","tag","elem","conf","title","svgProps","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","computedSize","stroke","fill","strokeWidth","height","width","xmlns","Consumer","createClassGroupUtils","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","split","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","classGroupFromNextClassPart","validators","classRest","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","exec","property","substring","theme","prefix","Map","prefixedClassGroupEntries","classGroups","classGroup","processClassesRecursively","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","path","currentClassPartObject","pathPart","func","getPrefixedClassGroupEntries","classGroupEntries","fromEntries","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","postfixModifierPosition","modifiers","bracketDepth","modifierStart","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","startsWith","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","sort","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","classGroupsInConflict","classNames","trim","result","originalClassName","variantModifier","modifierId","classId","conflictGroups","group","twJoin","argument","resolvedValue","string","toValue","mix","k","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isNaN","isArbitraryNumber","isInteger","isPercent","endsWith","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","twMerge","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","padding","saturate","scale","sepia","skew","space","translate","getOverscroll","getOverflow","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getPositions","getLineStyles","getBlendModes","getAlign","getZeroAndEmpty","getBreaks","getNumberAndArbitrary","aspect","columns","box","float","isolation","object","overflow","overscroll","start","end","top","right","bottom","left","z","basis","flex","grow","shrink","order","col","span","row","justify","self","px","py","ps","pe","pt","pr","pb","pl","m","mx","my","ms","me","mt","mr","mb","ml","w","screen","h","text","font","tracking","leading","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","repeat","via","to","rounded","border","divide","ring","shadow","table","caption","transition","duration","ease","delay","animate","transform","rotate","origin","accent","appearance","cursor","caret","resize","scroll","snap","touch","sr"],"sourceRoot":""}