view x/static/js/7902.f48e3002.chunk.js.map @ 125:49f3d3878413 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 5ea1f9c1eef1de76232e69aa6d34cda77d90d566
author fubar
date Sat, 05 Oct 2024 23:58:05 +0000
parents
children
line wrap: on
line source

{"version":3,"file":"static/js/7902.f48e3002.chunk.js","mappings":"kVAIA,SAAe,EAAAA,EAAA,IAA4B,SAAK,OAAQ,CACtDC,EAAG,uJACD,gB,sECYJ,MAAMC,GAAqBC,EAAAA,EAAAA,OAAK,IAAM,kCAEhCC,GAAYC,EAAAA,EAAAA,KAAAA,EAAa,KAAM,CACnCC,oBAAqB,CACnBC,YAAa,cAIjB,SAASC,IACP,MAAM,QAAEC,GAAYL,IACpB,OACEM,EAAAA,cAACC,EAAAA,EAAO,CACNC,UAAWH,EAAQH,oBACnBO,MAAM,wEAENH,EAAAA,cAACI,EAAAA,EAAQ,MAGf,CAEA,MAyDA,GAzDwBC,EAAAA,EAAAA,WAAS,UAAU,OACzCC,EAAM,MACNC,IAKA,MAAOC,EAAcC,IAAmBC,EAAAA,EAAAA,aAClC,cAAEC,IAAkBC,EAAAA,EAAAA,QAAOL,GAC3BM,GAAUC,EAAAA,EAAAA,YAAWP,IACrB,QAAEQ,EAAO,UAAEC,GAAcH,EACzBI,KAAkBC,EAAAA,EAAAA,IAA4BL,IAChDA,EAAQM,eAAeC,MACrBC,GAAKV,EAAcW,eAAehB,EAAOiB,OAAOC,MAAQH,EAAEG,MAIhE,OACExB,EAAAA,cAAAA,EAAAA,SAAA,KACGQ,EACCR,EAAAA,cAACyB,EAAAA,SAAQ,CAACC,SAAU,MAClB1B,EAAAA,cAACR,EAAkB,CACjBc,OAAQE,EACRmB,QAASJ,IACP,GAAIA,EAAM,CACR,MAAMD,EAAiBX,EAAcW,eAAehB,EAAOiB,MAEvDP,EACFD,EAAQa,aAAaN,IACZJ,EAAAA,EAAAA,IAA4BL,IACrCA,EAAQgB,oBAAoBP,EAEhC,CACAb,OAAgBqB,EAAU,KAI9B,KACJ9B,EAAAA,cAAC+B,EAAAA,GAAQ,CAACC,IAAK1B,EAAOiB,MACnBP,GAAaC,EACZjB,EAAAA,cAACiC,EAAAA,EAAU,CACT,cAAa,gBAAgB3B,EAAOiB,OACpCW,QAASA,KACPzB,EAAgBH,EAAOiB,KAAK,GAG9BvB,EAAAA,cAACmC,EAAAA,EAAS,OAGZnC,EAAAA,cAACF,EAAY,MAEfE,EAAAA,cAACoC,EAAAA,EAAU,KAAE9B,EAAOiB,OAI5B,ICzDA,GA3B6BlB,EAAAA,EAAAA,WAAS,UAA8B,cAClEM,EAAa,MACbJ,IAKA,MAAM,QAAE8B,GAAY1B,GACd,WAAE2B,GAAe/B,EAEjBgC,EAAkBF,EAAQG,QAC9BnB,IAAMV,EAAcW,eAAeD,EAAEE,OAAOkB,SAG9C,OACEzC,EAAAA,cAAC0C,EAAAA,EAAI,KACFH,EAAgBI,OAAS,EACxBJ,EACGC,QAAOnB,GAAKA,EAAEE,KAAKqB,cAAcC,SAASP,EAAWM,iBACrDE,KAAIzB,GAAKrB,EAAAA,cAAC+C,EAAe,CAACf,IAAKX,EAAEE,KAAMjB,OAAQe,EAAGd,MAAOA,MAE5DP,EAAAA,cAACoC,EAAAA,EAAU,KAAC,kCAIpB,I,+CC9BA,SAAe,EAAA9C,EAAA,IAA4B,SAAK,OAAQ,CACtDC,EAAG,gHACD,U,wBCoBJ,MAAMG,GAAYC,EAAAA,EAAAA,KAAAA,CAAa,CAC7BqD,KAAM,CACJC,OAAQ,SAEVC,KAAM,CACJC,WAAY,QACZtD,YAAa,SAEfuD,KAAM,CACJC,WAAY,KAEdC,UAAW,CACTC,QAAS,OACTC,WAAY,YAiEhB,GA7DmBnD,EAAAA,EAAAA,WAAS,UAAoB,OAC9CC,EAAM,MACNC,EAAK,UACLS,IAMA,MAAM,QAAEjB,GAAYL,IACdmB,GAAUC,EAAAA,EAAAA,YAAWP,IACrB,cAAEI,IAAkBC,EAAAA,EAAAA,QAAOL,IAC3B,yBAAEkD,GAA6B9C,EAE/B+C,EAAcD,EAAyBrC,MAAK7B,GAAKA,EAAEiC,MAAQlB,EAAOkB,OACjEmC,EAAcC,IAAmBlD,EAAAA,EAAAA,WAAS,GAC3CmD,EAAgBH,GAAeC,EAE/BG,GAAYC,EAAAA,EAAAA,WAAexD,EAAO,IAClC,QAAEQ,GAAY+C,EAEpB,OACE9D,EAAAA,cAACgE,EAAAA,EAAI,CAACC,QAAQ,WAAWjC,IAAK1B,EAAOiB,KAAMrB,UAAWH,EAAQiD,MAC5DhD,EAAAA,cAACkE,EAAAA,EAAW,KACVlE,EAAAA,cAACoC,EAAAA,EAAU,CAAC6B,QAAQ,MAClBjE,EAAAA,cAACmE,EAAAA,EAAI,CACHC,KAAM,GAAG9D,EAAO+D,kBAChBC,OAAO,SACPC,IAAI,YAEHjE,EAAOiB,OAGZvB,EAAAA,cAAA,OAAKE,UAAWH,EAAQuD,WACtBtD,EAAAA,cAACwE,EAAU,CAACC,MAAO,CAAE5E,YAAa,WAClCG,EAAAA,cAACoC,EAAAA,EAAU,KAAE9B,EAAOoE,QAAQC,KAAK,QAEnC3E,EAAAA,cAACoC,EAAAA,EAAU,CAAClC,UAAWH,EAAQqD,MAAM,gBACrCpD,EAAAA,cAACoC,EAAAA,EAAU,KAAE9B,EAAOsE,cAEtB5E,EAAAA,cAAC6E,EAAAA,EAAW,KACV7E,EAAAA,cAAC8E,EAAAA,EAAM,CACLb,QAAQ,YACRc,SAAUlB,EACVmB,UAAWtB,EAAc1D,EAAAA,cAACiF,EAAAA,EAAS,MAAMjF,EAAAA,cAACkF,EAAAA,EAAO,MACjDhD,QAASA,KACHlB,EACFD,EAAQoE,UAAU,CAAE5D,KAAMjB,EAAOiB,KAAMC,IAAKlB,EAAOkB,OAC1CN,EAAAA,EAAAA,IAA4BL,IACrCA,EAAQuE,iBAAiB9E,GAE3BsD,GAAgB,EAAK,GAGtBF,EAAc,YAAc,YAKvC,IC1EM2B,GAAwB5F,EAAAA,EAAAA,OAAK,IAAM,kCAEnCC,GAAYC,EAAAA,EAAAA,KAAAA,EAAa2F,IAAS,CACtCC,WAAY,CACVC,MAAOF,EAAMG,QAAQC,SAASC,cAEhCC,WAAY,CACVC,aAAc,EACdC,gBAAiBR,EAAMG,QAAQM,WAAWC,KAC1CC,QAAS,MACT1C,QAAS,OACT2C,aAAc,UAEhBC,mBAAoB,CAClBlD,OAAQ,WACRM,QAAS,YAoHb,GAhH0BlD,EAAAA,EAAAA,WAAS,UAAU,MAC3CE,IAIA,MAAM,QAAER,GAAYL,KACd,QAAE2C,EAAO,MAAE+D,GCjDZ,WACL,MAAO/D,EAASgE,IAAc3F,EAAAA,EAAAA,aACvB0F,EAAOE,IAAY5F,EAAAA,EAAAA,YAkB1B,OAjBA6F,EAAAA,EAAAA,YAAU,KAEP,WACC,IACE,MAAMC,QAAYC,MAAM,iDACxB,IAAKD,EAAIE,GAAI,CACX,MAAMC,QAAYH,EAAII,OACtB,MAAM,IAAIC,MAAM,QAAQL,EAAIM,4BAA4BH,IAC1D,CACA,MAAMI,QAAcP,EAAIQ,OACxBX,EAAWU,EAAM1E,QACnB,CAAE,MAAO4E,GACPC,QAAQd,MAAMa,GACdX,EAASW,EACX,CACD,EAbA,EAaG,GACH,IACI,CAAE5E,UAAS+D,QACpB,CD4B6Be,IACpBC,EAAMC,IAAW3G,EAAAA,EAAAA,WAAS,IAC3B,UAAEM,IAAcF,EAAAA,EAAAA,YAAWP,IAC3B,cAAEI,IAAkBC,EAAAA,EAAAA,QAAOL,GAEjC,OACEP,EAAAA,cAAA,WACGgB,GACChB,EAAAA,cAAAA,EAAAA,SAAA,MACIsH,EAAAA,YACAtH,EAAAA,cAAA,OAAKE,UAAWH,EAAQ6F,YACtB5F,EAAAA,cAACuH,EAAgB,CAAC9C,MAAO,CAAE5E,YAAa,WACxCG,EAAAA,cAACoC,EAAAA,EAAU,KAAC,qBACQpC,EAAAA,cAAA,YAAM,gBAAmB,gJAMjDA,EAAAA,cAAC8E,EAAAA,EAAM,CACL5E,UAAWH,EAAQoG,mBACnBlC,QAAQ,YACR/B,QAASA,KACPmF,GAAQ,EAAK,GAEhB,qBAGAD,EACCpH,EAAAA,cAACyB,EAAAA,SAAQ,CAACC,SAAU,MAClB1B,EAAAA,cAACqF,EAAqB,CACpB1D,QAASA,KACP0F,GAAQ,EAAM,EAEhB9G,MAAOA,KAGT,MAGRP,EAAAA,cAACwH,EAAAA,EAAS,CACRC,MAAM,iBACNC,MAAOnH,EAAM+B,WACbqF,SAAUC,IACRrH,EAAMsH,cAAcD,EAAMtD,OAAOoD,MAAM,EAEzCI,WAAS,EACTC,WAAY,CACVC,aACEhI,EAAAA,cAACiI,EAAAA,EAAc,CAACC,SAAS,OACvBlI,EAAAA,cAACiC,EAAAA,EAAU,CACTC,QAASA,KACP3B,EAAM4H,iBAAiB,GAGzBnI,EAAAA,cAACoI,EAAAA,EAAS,WAMpBpI,EAAAA,cAACqI,EAAAA,EAAS,CAACC,iBAAe,GACxBtI,EAAAA,cAACuI,EAAAA,EAAgB,CACfhD,WAAYvF,EAAAA,cAACwI,EAAAA,EAAc,CAACtI,UAAWH,EAAQwF,cAE/CvF,EAAAA,cAACoC,EAAAA,EAAU,CAAC6B,QAAQ,MAAK,sBAE3BjE,EAAAA,cAAA,OAAKyE,MAAO,CAAExB,OAAQ,QACpBjD,EAAAA,cAACyI,EAAoB,CAAC9H,cAAeA,EAAeJ,MAAOA,MAG/DP,EAAAA,cAACqI,EAAAA,EAAS,CAACC,iBAAe,GACxBtI,EAAAA,cAACuI,EAAAA,EAAgB,CACfhD,WAAYvF,EAAAA,cAACwI,EAAAA,EAAc,CAACtI,UAAWH,EAAQwF,cAE/CvF,EAAAA,cAACoC,EAAAA,EAAU,CAAC6B,QAAQ,MAAK,sBAE1BmC,EACCpG,EAAAA,cAACoC,EAAAA,EAAU,CAACoD,MAAM,SAAS,GAAGY,KAC5B/D,EACFA,EACGG,QAAOlC,KAGFgH,EAAAA,YAAchH,EAAOoI,SACvBpI,EAAOiB,KACJqB,cACAC,SAAStC,EAAM+B,WAAWM,iBAGhCE,KAAIxC,GACHN,EAAAA,cAAC2I,EAAU,CACT3G,IAAK1B,EAAOiB,KACZjB,OAAQA,EACRC,MAAOA,EACPS,YAAaA,MAInBhB,EAAAA,cAAC4I,EAAAA,gBAAe,OAK1B,G,6DEzJA,SAAe,QAA4B,SAAK,OAAQ,CACtDrJ,EAAG,sDACD,Q,4DCFJ,SAAe,QAA4B,SAAK,OAAQ,CACtDA,EAAG,iDACD,a,6DCFJ,SAAe,QAA4B,SAAK,OAAQ,CACtDA,EAAG,2NACD,O,mJCJG,SAASsJ,EAAgCC,GAC9C,OAAO,EAAAC,EAAA,IAAqB,sBAAuBD,EACrD,CACA,MACA,GADgC,EAAAE,EAAA,GAAuB,sBAAuB,CAAC,OAAQ,WAAY,eAAgB,WAAY,UAAW,iBAAkB,UAAW,sB,eCQvK,MAeMC,GAAuB,EAAAC,EAAA,IAAOC,EAAA,EAAY,CAC9C5H,KAAM,sBACNuH,KAAM,OACNM,kBAAmB,CAACC,EAAOC,IAAWA,EAAOC,MAHlB,EAI1B,EAAAC,EAAA,IAAU,EACXlE,YAEA,MAAMmE,EAAa,CACjBC,SAAUpE,EAAMqE,YAAYD,SAASE,UAEvC,MAAO,CACLrG,QAAS,OACTsG,UAAW,GACX5D,QAASX,EAAMwE,QAAQ,EAAG,GAC1BL,WAAYnE,EAAMqE,YAAYI,OAAO,CAAC,aAAc,oBAAqBN,GACzE,CAAC,KAAK,EAAwBO,gBAAiB,CAC7ClE,iBAAkBR,EAAM2E,MAAQ3E,GAAOG,QAAQyE,OAAOC,OAExD,CAAC,KAAK,EAAwBpF,YAAa,CACzCqF,SAAU9E,EAAM2E,MAAQ3E,GAAOG,QAAQyE,OAAOG,iBAEhD,CAAC,gBAAgB,EAAwBtF,aAAc,CACrDuF,OAAQ,WAEVC,SAAU,CAAC,CACTlB,MAAOA,IAAUA,EAAMmB,eACvB/F,MAAO,CACL,CAAC,KAAK,EAAwBgG,YAAa,CACzCZ,UAAW,OAIlB,KAEGa,GAA0B,EAAAxB,EAAA,IAAO,MAAO,CAC5C3H,KAAM,sBACNuH,KAAM,UACNM,kBAAmB,CAACC,EAAOC,IAAWA,EAAOqB,SAHf,EAI7B,EAAAnB,EAAA,IAAU,EACXlE,YACI,CACJ/B,QAAS,OACTqH,SAAU,EACV3H,OAAQ,SACRsH,SAAU,CAAC,CACTlB,MAAOA,IAAUA,EAAMmB,eACvB/F,MAAO,CACLgF,WAAYnE,EAAMqE,YAAYI,OAAO,CAAC,UAAW,CAC/CL,SAAUpE,EAAMqE,YAAYD,SAASE,WAEvC,CAAC,KAAK,EAAwBa,YAAa,CACzCxH,OAAQ,kBAKV4H,GAAoC,EAAA3B,EAAA,IAAO,MAAO,CACtD3H,KAAM,sBACNuH,KAAM,oBACNM,kBAAmB,CAACC,EAAOC,IAAWA,EAAOwB,mBAHL,EAIvC,EAAAtB,EAAA,IAAU,EACXlE,YACI,CACJ/B,QAAS,OACTiC,OAAQF,EAAM2E,MAAQ3E,GAAOG,QAAQyE,OAAOa,OAC5CC,UAAW,eACXvB,WAAYnE,EAAMqE,YAAYI,OAAO,YAAa,CAChDL,SAAUpE,EAAMqE,YAAYD,SAASE,WAEvC,CAAC,KAAK,EAAwBa,YAAa,CACzCO,UAAW,uBAmGf,EAhGsC,cAAiB,SAA0BC,EAASC,GACxF,MAAM7B,GAAQ,OAAgB,CAC5BA,MAAO4B,EACP1J,KAAM,yBAEF,SACJ4J,EAAQ,UACRjL,EAAS,WACTqF,EAAU,sBACV6F,EAAqB,QACrBlJ,KACGmJ,GACDhC,GACE,SACJtE,GAAW,EAAK,eAChByF,EAAc,SACdC,EAAQ,OACRa,GACE,aAAiBC,EAAAC,GASfC,EAAa,IACdpC,EACHoB,WACA1F,WACAyF,kBAEIzK,EAzHkB0L,KACxB,MAAM,QACJ1L,EAAO,SACP0K,EAAQ,SACR1F,EAAQ,eACRyF,GACEiB,EACEC,EAAQ,CACZnC,KAAM,CAAC,OAAQkB,GAAY,WAAY1F,GAAY,YAAayF,GAAkB,WAClFR,aAAc,CAAC,gBACfW,QAAS,CAAC,UAAWF,GAAY,YAAaD,GAAkB,kBAChEM,kBAAmB,CAAC,oBAAqBL,GAAY,aAEvD,OAAO,EAAAkB,EAAA,GAAeD,EAAO7C,EAAiC9I,EAAQ,EA4GtD6L,CAAkBH,GAClC,OAAoB,UAAMxC,EAAsB,CAC9C4C,aAAa,EACbC,eAAe,EACf/G,SAAUA,EACVgH,UAAW,MACX,gBAAiBtB,EACjBvK,WAAW,EAAA8L,EAAA,GAAKjM,EAAQwJ,KAAMrJ,GAC9BkL,uBAAuB,EAAAY,EAAA,GAAKjM,EAAQiK,aAAcoB,GAClDlJ,QAvBmB0F,IACf0D,GACFA,EAAO1D,GAEL1F,GACFA,EAAQ0F,EACV,EAkBAsD,IAAKA,EACLO,WAAYA,KACTJ,EACHF,SAAU,EAAc,SAAKT,EAAyB,CACpDxK,UAAWH,EAAQ4K,QACnBc,WAAYA,EACZN,SAAUA,IACR5F,IAA2B,SAAKsF,EAAmC,CACrE3K,UAAWH,EAAQ+K,kBACnBW,WAAYA,EACZN,SAAU5F,MAGhB,G,0HCjJA,MASM0G,GAAW,QAAO,IAAO,CAC7B1K,KAAM,UACNuH,KAAM,OACNM,kBAAmB,CAACC,EAAOC,IAAWA,EAAOC,MAH9B,CAId,CACD2C,SAAU,WAyDZ,EAvD0B,cAAiB,SAAcjB,EAASC,GAChE,MAAM7B,GAAQ,OAAgB,CAC5BA,MAAO4B,EACP1J,KAAM,aAEF,UACJrB,EAAS,OACTiM,GAAS,KACNd,GACDhC,EACEoC,EAAa,IACdpC,EACH8C,UAEIpM,EA9BkB0L,KACxB,MAAM,QACJ1L,GACE0L,EAIJ,OAAO,OAHO,CACZlC,KAAM,CAAC,SAEoB,IAAqBxJ,EAAQ,EAuB1C6L,CAAkBH,GAClC,OAAoB,SAAKQ,EAAU,CACjC/L,WAAW,OAAKH,EAAQwJ,KAAMrJ,GAC9BkM,UAAWD,EAAS,OAAIrK,EACxBoJ,IAAKA,EACLO,WAAYA,KACTJ,GAEP,G,qEChDO,SAASgB,EAAoBvD,GAClC,OAAO,QAAqB,UAAWA,EACzC,CACA,MACA,GADoB,OAAuB,UAAW,CAAC,Q,kHCKvD,MAUMwD,GAAkB,QAAO,MAAO,CACpC/K,KAAM,iBACNuH,KAAM,OACNM,kBAAmB,CAACC,EAAOC,KACzB,MAAM,WACJmC,GACEpC,EACJ,MAAO,CAACC,EAAOC,MAAOkC,EAAWc,gBAAkBjD,EAAOQ,QAAQ,GAP9C,CASrB,CACDvG,QAAS,OACTC,WAAY,SACZyC,QAAS,EACTsE,SAAU,CAAC,CACTlB,MAAO,CACLkD,gBAAgB,GAElB9H,MAAO,CACL,gCAAiC,CAC/BtB,WAAY,QAsDpB,EAjDiC,cAAiB,SAAqB8H,EAASC,GAC9E,MAAM7B,GAAQ,OAAgB,CAC5BA,MAAO4B,EACP1J,KAAM,oBAEF,eACJgL,GAAiB,EAAK,UACtBrM,KACGmL,GACDhC,EACEoC,EAAa,IACdpC,EACHkD,kBAEIxM,EAhDkB0L,KACxB,MAAM,QACJ1L,EAAO,eACPwM,GACEd,EACEC,EAAQ,CACZnC,KAAM,CAAC,QAASgD,GAAkB,YAEpC,OAAO,OAAeb,EAAO,IAA4B3L,EAAQ,EAwCjD6L,CAAkBH,GAClC,OAAoB,SAAKa,EAAiB,CACxCpM,WAAW,OAAKH,EAAQwJ,KAAMrJ,GAC9BuL,WAAYA,EACZP,IAAKA,KACFG,GAEP,G,qEC/DO,SAASmB,EAA2B1D,GACzC,OAAO,QAAqB,iBAAkBA,EAChD,CACA,MACA,GAD2B,OAAuB,iBAAkB,CAAC,OAAQ,W,kHCK7E,MASM2D,GAAkB,QAAO,MAAO,CACpClL,KAAM,iBACNuH,KAAM,OACNM,kBAAmB,CAACC,EAAOC,IAAWA,EAAOC,MAHvB,CAIrB,CACDtD,QAAS,GACT,eAAgB,CACdyG,cAAe,MAqDnB,EAlDiC,cAAiB,SAAqBzB,EAASC,GAC9E,MAAM7B,GAAQ,OAAgB,CAC5BA,MAAO4B,EACP1J,KAAM,oBAEF,UACJrB,EAAS,UACT6L,EAAY,SACTV,GACDhC,EACEoC,EAAa,IACdpC,EACH0C,aAEIhM,EAjCkB0L,KACxB,MAAM,QACJ1L,GACE0L,EAIJ,OAAO,OAHO,CACZlC,KAAM,CAAC,SAEoB,IAA4BxJ,EAAQ,EA0BjD6L,CAAkBH,GAClC,OAAoB,SAAKgB,EAAiB,CACxCE,GAAIZ,EACJ7L,WAAW,OAAKH,EAAQwJ,KAAMrJ,GAC9BuL,WAAYA,EACZP,IAAKA,KACFG,GAEP,G,qECjDO,SAASuB,EAA2B9D,GACzC,OAAO,QAAqB,iBAAkBA,EAChD,CACA,MACA,GAD2B,OAAuB,iBAAkB,CAAC,Q,+LCHrE,MAYA,EAZ0B,EACxBxD,QACAmG,iBAEA,MAAMoB,EAAmBpB,EAAWjG,MAC9BA,GAAQ,QAAQF,EAAO,WAAWuH,KAAoB,IAAUpB,EAAWjG,MAC3EsH,GAAe,QAAQxH,EAAO,WAAWuH,YAC/C,MAAI,SAAUvH,GAASwH,EACd,QAAQA,YAEV,QAAMtH,EAAO,GAAI,E,eCM1B,MAAMuH,EAAW,CACfC,SAAS,EACTC,WAAW,EACX7G,OAAO,EACP8G,MAAM,EACNC,SAAS,EACTC,SAAS,EACTC,aAAa,EACbC,eAAe,EACfC,cAAc,GAcVC,GAAW,EAAAtE,EAAA,IAAO9G,EAAA,EAAY,CAClCb,KAAM,UACNuH,KAAM,OACNM,kBAAmB,CAACC,EAAOC,KACzB,MAAM,WACJmC,GACEpC,EACJ,MAAO,CAACC,EAAOC,KAAMD,EAAO,aAAY,EAAAmE,EAAA,GAAWhC,EAAWiC,cAAwC,WAAzBjC,EAAWM,WAA0BzC,EAAOqE,OAAO,GAPnH,EASd,EAAAnE,EAAA,IAAU,EACXlE,YAEO,CACLiF,SAAU,CAAC,CACTlB,MAAO,CACLqE,UAAW,QAEbjJ,MAAO,CACLmJ,eAAgB,SAEjB,CACDvE,MAAO,CACLqE,UAAW,SAEbjJ,MAAO,CACLmJ,eAAgB,OAChB,UAAW,CACTA,eAAgB,eAGnB,CACDvE,MAAO,CACLqE,UAAW,UAEbjJ,MAAO,CACLmJ,eAAgB,YAChB,UAAW,CACTC,oBAAqB,aAGxB,CACDxE,MAAO,EACLqE,YACAjC,gBACkB,WAAdiC,GAA+C,YAArBjC,EAAWjG,MAC3Cf,MAAO,CACLoJ,oBAAqB,kCAEnBC,OAAOC,QAAQzI,EAAMG,SAASjD,QAAO,EAAAwL,EAAA,MAAkClL,KAAI,EAAE0C,MAAW,CAC5F6D,MAAO,CACLqE,UAAW,SACXlI,SAEFf,MAAO,CACL,wBAAyBa,EAAM2E,KAAO,QAAQ3E,EAAM2E,KAAKxE,QAAQD,GAAOyI,sBAAuB,QAAM3I,EAAMG,QAAQD,GAAOQ,KAAM,SAE/H,CACHqD,MAAO,CACLqE,UAAW,SACXlI,MAAO,eAETf,MAAO,CACL,wBAAyBa,EAAM2E,KAAO,QAAQ3E,EAAM2E,KAAKxE,QAAQmB,KAAKsH,yBAA0B,QAAM5I,EAAMG,QAAQmB,KAAKoG,QAAS,MAEnI,CACD3D,MAAO,CACLqE,UAAW,SACXlI,MAAO,iBAETf,MAAO,CACL,wBAAyBa,EAAM2E,KAAO,QAAQ3E,EAAM2E,KAAKxE,QAAQmB,KAAKuH,2BAA4B,QAAM7I,EAAMG,QAAQmB,KAAKqG,UAAW,MAEvI,CACD5D,MAAO,CACLqE,UAAW,SACXlI,MAAO,gBAETf,MAAO,CACL,yBAA0Ba,EAAM2E,MAAQ3E,GAAOG,QAAQmB,KAAK7B,WAE7D,CACDsE,MAAO,CACL0C,UAAW,UAEbtH,MAAO,CACLyD,SAAU,WACVkG,wBAAyB,cACzBtI,gBAAiB,cAGjBuI,QAAS,EACTC,OAAQ,EACRrL,OAAQ,EAER4C,aAAc,EACdI,QAAS,EAETqE,OAAQ,UACRiE,WAAY,OACZC,cAAe,SACfC,cAAe,OAEfC,iBAAkB,OAElB,sBAAuB,CACrBC,YAAa,QAEf,CAAC,KAAKC,EAAA,EAAY5E,gBAAiB,CACjCqE,QAAS,gBAqInB,EA/H0B,cAAiB,SAAcpD,EAASC,GAChE,MAAM7B,GAAQ,OAAgB,CAC5BA,MAAO4B,EACP1J,KAAM,YAEF+D,GAAQ,EAAAuJ,EAAA,MACR,UACJ3O,EAAS,MACTsF,EAAQ,UAAS,UACjBuG,EAAY,IAAG,OACf+C,EAAM,QACNC,EAAO,kBACPC,EAAiB,UACjBtB,EAAY,SAAQ,QACpBzJ,EAAU,UAAS,GACnBgL,KACG5D,GACDhC,GACGW,EAAckF,GAAmB,YAAe,GAiBjDzD,EAAa,IACdpC,EACH7D,QACAuG,YACA/B,eACA0D,YACAzJ,WAEIlE,EAzKkB0L,KACxB,MAAM,QACJ1L,EAAO,UACPgM,EAAS,aACT/B,EAAY,UACZ0D,GACEjC,EACEC,EAAQ,CACZnC,KAAM,CAAC,OAAQ,aAAY,EAAAkE,EAAA,GAAWC,KAA4B,WAAd3B,GAA0B,SAAU/B,GAAgB,iBAE1G,OAAO,EAAA2B,EAAA,GAAeD,EAAO,IAAqB3L,EAAQ,EA+J1C6L,CAAkBH,GAClC,OAAoB,SAAK+B,EAAU,CACjChI,MAAOA,EACPtF,WAAW,EAAA8L,EAAA,GAAKjM,EAAQwJ,KAAMrJ,GAC9BH,QAASiP,EACTjD,UAAWA,EACX+C,OA9BiBlH,KACZ,EAAAuH,EAAA,GAAevH,EAAMtD,SACxB4K,GAAgB,GAEdJ,GACFA,EAAOlH,EACT,EAyBAmH,QAvBkBnH,KACd,EAAAuH,EAAA,GAAevH,EAAMtD,SACvB4K,GAAgB,GAEdH,GACFA,EAAQnH,EACV,EAkBAsD,IAAKA,EACLO,WAAYA,EACZxH,QAASA,KACNoH,EACH4D,GAAI,SAAyBnN,IAApBiL,EAASvH,GAAuB,CAAC,CACxCA,UACG,MAAS4J,MAAMC,QAAQJ,GAAMA,EAAK,CAACA,IACxCxK,MAAO,IACF4G,EAAM5G,SACS,WAAdiJ,GAAoC,YAAVlI,IAAwBuH,EAASvH,IAAU,CACvE,wBAAyB,EAAkB,CACzCF,QACAmG,kBAKV,G,qEC7NO,SAAS6D,EAAoBxG,GAClC,OAAO,QAAqB,UAAWA,EACzC,CACA,MACA,GADoB,OAAuB,UAAW,CAAC,OAAQ,gBAAiB,iBAAkB,kBAAmB,SAAU,gB,8LCcxH,MAsBMyG,GAAe,QAAO,MAAO,CACxChO,KAAM,cACNuH,KAAM,OACNM,kBAzB+B,CAACC,EAAOC,KACvC,MAAM,WACJmC,GACEpC,EACJ,MAAO,CAACC,EAAOC,KAAMkC,EAAW+D,OAASlG,EAAOkG,MAAiC,eAA1B/D,EAAWjI,YAA+B8F,EAAOmG,oBAAqBhE,EAAWiE,SAAWpG,EAAOoG,SAAUjE,EAAWjB,gBAAkBlB,EAAOqG,SAAUlE,EAAWmE,gBAAkBtG,EAAOrD,QAASwF,EAAWoE,oBAAsBvG,EAAOwG,gBAAgB,GAkB7R,EAIzB,QAAU,EACXxK,YACI,CACJ/B,QAAS,OACTwM,eAAgB,aAChBvM,WAAY,SACZ0E,SAAU,WACV0F,eAAgB,OAChBoC,MAAO,OACPC,UAAW,aACXC,UAAW,OACX3F,SAAU,CAAC,CACTlB,MAAO,EACLoC,iBACKA,EAAWmE,eAClBnL,MAAO,CACL0L,WAAY,EACZzD,cAAe,IAEhB,CACDrD,MAAO,EACLoC,iBACKA,EAAWmE,gBAAkBnE,EAAW+D,MAC/C/K,MAAO,CACL0L,WAAY,EACZzD,cAAe,IAEhB,CACDrD,MAAO,EACLoC,iBACKA,EAAWmE,iBAAmBnE,EAAWjB,eAChD/F,MAAO,CACL2L,YAAa,GACbC,aAAc,KAEf,CACDhH,MAAO,EACLoC,iBACKA,EAAWmE,kBAAoBnE,EAAWqE,gBACjDrL,MAAO,CAGL4L,aAAc,KAEf,CACDhH,MAAO,EACLoC,kBACMA,EAAWqE,gBACnBrL,MAAO,CACL,CAAC,QAAQ,IAAsB8E,QAAS,CACtC8G,aAAc,MAGjB,CACDhH,MAAO,CACL7F,WAAY,cAEdiB,MAAO,CACLjB,WAAY,eAEb,CACD6F,MAAO,EACLoC,gBACIA,EAAWiE,QACjBjL,MAAO,CACL6L,aAAc,cAAchL,EAAM2E,MAAQ3E,GAAOG,QAAQiK,UACzDa,eAAgB,gBAEjB,CACDlH,MAAO,EACLoC,gBACIA,EAAWkC,OACjBlJ,MAAO,CACLgF,WAAYnE,EAAMqE,YAAYI,OAAO,mBAAoB,CACvDL,SAAUpE,EAAMqE,YAAYD,SAASE,WAEvC,UAAW,CACTgE,eAAgB,OAChB9H,iBAAkBR,EAAM2E,MAAQ3E,GAAOG,QAAQyE,OAAOsG,MAEtD,uBAAwB,CACtB1K,gBAAiB,kBAItB,CACDuD,MAAO,EACLoC,gBACIA,EAAWoE,mBACjBpL,MAAO,CAGL4L,aAAc,WAIdI,GAAoB,QAAO,KAAM,CACrClP,KAAM,cACNuH,KAAM,YACNM,kBAAmB,CAACC,EAAOC,IAAWA,EAAOoH,WAHrB,CAIvB,CACDxI,SAAU,aAiPZ,EA3O8B,cAAiB,SAAkB+C,EAASC,GACxE,MAAM7B,GAAQ,OAAgB,CAC5BA,MAAO4B,EACP1J,KAAM,iBAEF,WACJiC,EAAa,SACb2H,SAAUwF,EAAY,UACtBzQ,EACA6L,UAAW6E,EAAa,WACxBC,EAAa,CAAC,EAAC,gBACfC,EAAkB,CAAC,EAAC,mBACpBC,EAAqB,KACrBC,gBACE9Q,UAAW+Q,KACRD,GACD,CAAC,EAAC,MACNxB,GAAQ,EAAK,eACbhF,GAAiB,EAAK,eACtBoF,GAAiB,EAAK,QACtBF,GAAU,EAAK,gBACfI,EAAe,UACfoB,EAAY,CAAC,EAAC,MACdxF,EAAQ,CAAC,KACNL,GACDhC,EACE8H,EAAU,aAAiB,KAC3BC,EAAe,WAAc,KAAM,CACvC5B,MAAOA,GAAS2B,EAAQ3B,QAAS,EACjChM,aACAgH,oBACE,CAAChH,EAAY2N,EAAQ3B,MAAOA,EAAOhF,IACjC6G,EAAc,SAAa,MAC3BlG,EAAW,WAAemG,QAAQX,GAGlCd,EAAqB1E,EAASxI,SAAU,OAAawI,EAASA,EAASxI,OAAS,GAAI,CAAC,4BACrF8I,EAAa,IACdpC,EACH7F,aACAgM,MAAO4B,EAAa5B,MACpBhF,iBACAoF,iBACAF,UACAG,sBAEI9P,EA7KkB0L,KACxB,MAAM,WACJjI,EAAU,QACVzD,EAAO,MACPyP,EAAK,eACLhF,EAAc,eACdoF,EAAc,QACdF,EAAO,mBACPG,GACEpE,EACEC,EAAQ,CACZnC,KAAM,CAAC,OAAQiG,GAAS,SAAUhF,GAAkB,WAAYoF,GAAkB,UAAWF,GAAW,UAA0B,eAAflM,GAA+B,sBAAuBqM,GAAsB,mBAC/La,UAAW,CAAC,cAEd,OAAO,OAAehF,EAAO,IAAyB3L,EAAQ,EA+J9C6L,CAAkBH,GAC5B8F,GAAY,OAAWF,EAAanG,GACpCsG,EAAO9F,EAAMnC,MAAQsH,EAAWW,MAAQjC,EACxCkC,EAAYP,EAAU3H,MAAQuH,EAAgBvH,MAAQ,CAAC,EACvDmI,EAAiB,CACrBxR,WAAW,OAAKH,EAAQwJ,KAAMkI,EAAUvR,UAAWA,MAChDmL,GAEL,IAAIsG,EAAYf,GAAiB,KAGjC,OAAIf,GAEF8B,EAAaD,EAAe3F,WAAc6E,EAAwBe,EAAR,MAG/B,OAAvBZ,IACgB,OAAdY,EACFA,EAAY,MAC0B,OAA7BD,EAAe3F,YACxB2F,EAAe3F,UAAY,SAGX,SAAK,IAAY6F,SAAU,CAC7ClK,MAAO0J,EACPjG,UAAuB,UAAMsF,EAAmB,CAC9C9D,GAAIoE,EACJ7Q,WAAW,OAAKH,EAAQ2Q,UAAWO,GACnC/F,IAAKqG,EACL9F,WAAYA,KACTuF,EACH7F,SAAU,EAAc,SAAKqG,EAAM,IAC9BC,OACE,OAAgBD,IAAS,CAC5B7E,GAAIgF,EACJlG,WAAY,IACPA,KACAgG,EAAUhG,gBAGdiG,EACHvG,SAAUA,IACRA,EAAS0G,aAIC,SAAK,IAAYD,SAAU,CAC7ClK,MAAO0J,EACPjG,UAAuB,UAAMqG,EAAM,IAC9BC,EACH9E,GAAIgF,EACJzG,IAAKqG,OACA,OAAgBC,IAAS,CAC5B/F,WAAY,IACPA,KACAgG,EAAUhG,gBAGdiG,EACHvG,SAAU,CAACA,EAAU2E,IAAgC,SAAK,IAAyB,CACjF3E,SAAU2E,QAIlB,G,qECpQO,SAASgC,EAAwBhJ,GACtC,OAAO,QAAqB,cAAeA,EAC7C,CACA,MACA,GADwB,OAAuB,cAAe,CAAC,OAAQ,YAAa,QAAS,sBAAuB,UAAW,UAAW,UAAW,mB,oECH9I,SAASiJ,EAA8BjJ,GAC5C,OAAO,QAAqB,oBAAqBA,EACnD,CACA,MACA,GAD8B,OAAuB,oBAAqB,CAAC,OAAQ,eAAgB,QAAS,sBAAuB,WAAY,UAAW,UAAW,Y,6HCMrK,MAUMkJ,GAA8B,QAAO,MAAO,CAChDzQ,KAAM,6BACNuH,KAAM,OACNM,kBAAmB,CAACC,EAAOC,KACzB,MAAM,WACJmC,GACEpC,EACJ,MAAO,CAACC,EAAOC,KAAMkC,EAAWjB,gBAAkBlB,EAAOkB,eAAe,GAPxC,CASjC,CACDtC,SAAU,WACV+J,MAAO,GACPC,IAAK,MACLlH,UAAW,mBACXT,SAAU,CAAC,CACTlB,MAAO,EACLoC,gBACIA,EAAWjB,eACjB/F,MAAO,CACLwN,MAAO,OAUPE,EAAuC,cAAiB,SAAiClH,EAASC,GACtG,MAAM7B,GAAQ,OAAgB,CAC5BA,MAAO4B,EACP1J,KAAM,gCAEF,UACJrB,KACGmL,GACDhC,EACE8H,EAAU,aAAiB,KAC3B1F,EAAa,IACdpC,EACHmB,eAAgB2G,EAAQ3G,gBAEpBzK,EArDkB0L,KACxB,MAAM,eACJjB,EAAc,QACdzK,GACE0L,EACEC,EAAQ,CACZnC,KAAM,CAAC,OAAQiB,GAAkB,mBAEnC,OAAO,OAAekB,EAAO,EAAA0G,EAA+CrS,EAAQ,EA6CpE6L,CAAkBH,GAClC,OAAoB,SAAKuG,EAA6B,CACpD9R,WAAW,OAAKH,EAAQwJ,KAAMrJ,GAC9BuL,WAAYA,EACZP,IAAKA,KACFG,GAEP,IAuBA8G,EAAwBE,QAAU,0BAClC,S,qEC7FO,SAASC,EAA8CxJ,GAC5D,OAAO,QAAqB,6BAA8BA,EAC5D,CACA,MACA,GADuC,OAAuB,6BAA8B,CAAC,OAAQ,kB","sources":["../../../node_modules/@mui/icons-material/esm/InfoOutlined.js","../../../plugins/data-management/src/PluginStoreWidget/components/InstalledPlugin.tsx","../../../plugins/data-management/src/PluginStoreWidget/components/InstalledPluginsList.tsx","../../../node_modules/@mui/icons-material/esm/Person.js","../../../plugins/data-management/src/PluginStoreWidget/components/PluginCard.tsx","../../../plugins/data-management/src/PluginStoreWidget/components/PluginStoreWidget.tsx","../../../plugins/data-management/src/PluginStoreWidget/components/util.ts","../../../node_modules/@mui/icons-material/esm/Check.js","../../../node_modules/@mui/icons-material/esm/ExpandMore.js","../../../node_modules/@mui/icons-material/esm/Lock.js","../../../node_modules/@mui/material/AccordionSummary/accordionSummaryClasses.js","../../../node_modules/@mui/material/AccordionSummary/AccordionSummary.js","../../../node_modules/@mui/material/Card/Card.js","../../../node_modules/@mui/material/Card/cardClasses.js","../../../node_modules/@mui/material/CardActions/CardActions.js","../../../node_modules/@mui/material/CardActions/cardActionsClasses.js","../../../node_modules/@mui/material/CardContent/CardContent.js","../../../node_modules/@mui/material/CardContent/cardContentClasses.js","../../../node_modules/@mui/material/Link/getTextDecoration.js","../../../node_modules/@mui/material/Link/Link.js","../../../node_modules/@mui/material/Link/linkClasses.js","../../../node_modules/@mui/material/ListItem/ListItem.js","../../../node_modules/@mui/material/ListItem/listItemClasses.js","../../../node_modules/@mui/material/ListItemButton/listItemButtonClasses.js","../../../node_modules/@mui/material/ListItemSecondaryAction/ListItemSecondaryAction.js","../../../node_modules/@mui/material/ListItemSecondaryAction/listItemSecondaryActionClasses.js"],"sourcesContent":["\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n  d: \"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8\"\n}), 'InfoOutlined');","import React, { Suspense, lazy, useState } from 'react'\nimport { observer } from 'mobx-react'\nimport { IconButton, ListItem, Tooltip, Typography } from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\n\nimport CloseIcon from '@mui/icons-material/Close'\nimport LockIcon from '@mui/icons-material/Lock'\n\nimport { getEnv, getSession } from '@jbrowse/core/util'\nimport {\n  BasePlugin,\n  isSessionWithSessionPlugins,\n} from '@jbrowse/core/util/types'\n\n// locals\nimport { PluginStoreModel } from '../model'\n\n// lazies\nconst DeletePluginDialog = lazy(() => import('./DeletePluginDialog'))\n\nconst useStyles = makeStyles()(() => ({\n  lockedPluginTooltip: {\n    marginRight: '0.5rem',\n  },\n}))\n\nfunction LockedPlugin() {\n  const { classes } = useStyles()\n  return (\n    <Tooltip\n      className={classes.lockedPluginTooltip}\n      title=\"This plugin was installed by an administrator, you cannot remove it.\"\n    >\n      <LockIcon />\n    </Tooltip>\n  )\n}\n\nconst InstalledPlugin = observer(function ({\n  plugin,\n  model,\n}: {\n  plugin: BasePlugin\n  model: PluginStoreModel\n}) {\n  const [dialogPlugin, setDialogPlugin] = useState<string>()\n  const { pluginManager } = getEnv(model)\n  const session = getSession(model)\n  const { jbrowse, adminMode } = session\n  const isSessionPlugin = isSessionWithSessionPlugins(session)\n    ? session.sessionPlugins.some(\n        p => pluginManager.pluginMetadata[plugin.name]?.url === p.url,\n      )\n    : false\n\n  return (\n    <>\n      {dialogPlugin ? (\n        <Suspense fallback={null}>\n          <DeletePluginDialog\n            plugin={dialogPlugin}\n            onClose={name => {\n              if (name) {\n                const pluginMetadata = pluginManager.pluginMetadata[plugin.name]\n\n                if (adminMode) {\n                  jbrowse.removePlugin(pluginMetadata)\n                } else if (isSessionWithSessionPlugins(session)) {\n                  session.removeSessionPlugin(pluginMetadata)\n                }\n              }\n              setDialogPlugin(undefined)\n            }}\n          />\n        </Suspense>\n      ) : null}\n      <ListItem key={plugin.name}>\n        {adminMode || isSessionPlugin ? (\n          <IconButton\n            data-testid={`removePlugin-${plugin.name}`}\n            onClick={() => {\n              setDialogPlugin(plugin.name)\n            }}\n          >\n            <CloseIcon />\n          </IconButton>\n        ) : (\n          <LockedPlugin />\n        )}\n        <Typography>{plugin.name}</Typography>\n      </ListItem>\n    </>\n  )\n})\n\nexport default InstalledPlugin\n","import React from 'react'\nimport { observer } from 'mobx-react'\nimport { List, Typography } from '@mui/material'\nimport PluginManager from '@jbrowse/core/PluginManager'\n\n// locals\nimport { PluginStoreModel } from '../model'\nimport InstalledPlugin from './InstalledPlugin'\n\nconst InstalledPluginsList = observer(function InstalledPluginsList({\n  pluginManager,\n  model,\n}: {\n  pluginManager: PluginManager\n  model: PluginStoreModel\n}) {\n  const { plugins } = pluginManager\n  const { filterText } = model\n\n  const externalPlugins = plugins.filter(\n    p => !pluginManager.pluginMetadata[p.name]?.isCore,\n  )\n\n  return (\n    <List>\n      {externalPlugins.length > 0 ? (\n        externalPlugins\n          .filter(p => p.name.toLowerCase().includes(filterText.toLowerCase()))\n          .map(p => <InstalledPlugin key={p.name} plugin={p} model={model} />)\n      ) : (\n        <Typography>No plugins currently installed</Typography>\n      )}\n    </List>\n  )\n})\n\nexport default InstalledPluginsList\n","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n  d: \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4\"\n}), 'Person');","import React, { useState } from 'react'\nimport { observer } from 'mobx-react'\nimport { getParent } from 'mobx-state-tree'\nimport { getSession, getEnv } from '@jbrowse/core/util'\nimport {\n  JBrowsePlugin,\n  isSessionWithSessionPlugins,\n} from '@jbrowse/core/util/types'\nimport {\n  Card,\n  CardActions,\n  CardContent,\n  Button,\n  Link,\n  Typography,\n} from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\n\n// icons\nimport PersonIcon from '@mui/icons-material/Person'\nimport AddIcon from '@mui/icons-material/Add'\nimport CheckIcon from '@mui/icons-material/Check'\n\n// locals\nimport { PluginStoreModel } from '../model'\n\nconst useStyles = makeStyles()({\n  card: {\n    margin: '0.5em',\n  },\n  icon: {\n    marginLeft: '0.5em',\n    marginRight: '0.5em',\n  },\n  bold: {\n    fontWeight: 600,\n  },\n  dataField: {\n    display: 'flex',\n    alignItems: 'center',\n  },\n})\n\nconst PluginCard = observer(function PluginCard({\n  plugin,\n  model,\n  adminMode,\n}: {\n  plugin: JBrowsePlugin\n  model: PluginStoreModel\n  adminMode: boolean\n}) {\n  const { classes } = useStyles()\n  const session = getSession(model)\n  const { pluginManager } = getEnv(model)\n  const { runtimePluginDefinitions } = pluginManager\n  // @ts-expect-error\n  const isInstalled = runtimePluginDefinitions.some(d => d.url === plugin.url)\n  const [tempDisabled, setTempDisabled] = useState(false)\n  const disableButton = isInstalled || tempDisabled\n\n  const rootModel = getParent<any>(model, 3)\n  const { jbrowse } = rootModel\n\n  return (\n    <Card variant=\"outlined\" key={plugin.name} className={classes.card}>\n      <CardContent>\n        <Typography variant=\"h5\">\n          <Link\n            href={`${plugin.location}#readme`}\n            target=\"_blank\"\n            rel=\"noopener\"\n          >\n            {plugin.name}\n          </Link>\n        </Typography>\n        <div className={classes.dataField}>\n          <PersonIcon style={{ marginRight: '0.5em' }} />\n          <Typography>{plugin.authors.join(', ')}</Typography>\n        </div>\n        <Typography className={classes.bold}>Description:</Typography>\n        <Typography>{plugin.description}</Typography>\n      </CardContent>\n      <CardActions>\n        <Button\n          variant=\"contained\"\n          disabled={disableButton}\n          startIcon={isInstalled ? <CheckIcon /> : <AddIcon />}\n          onClick={() => {\n            if (adminMode) {\n              jbrowse.addPlugin({ name: plugin.name, url: plugin.url })\n            } else if (isSessionWithSessionPlugins(session)) {\n              session.addSessionPlugin(plugin)\n            }\n            setTempDisabled(true)\n          }}\n        >\n          {isInstalled ? 'Installed' : 'Install'}\n        </Button>\n      </CardActions>\n    </Card>\n  )\n})\n\nexport default PluginCard\n","import React, { useState, lazy, Suspense } from 'react'\nimport {\n  Accordion,\n  AccordionSummary,\n  Button,\n  IconButton,\n  InputAdornment,\n  TextField,\n  Typography,\n} from '@mui/material'\nimport { makeStyles } from 'tss-react/mui'\nimport { observer } from 'mobx-react'\nimport { getEnv } from 'mobx-state-tree'\nimport { LoadingEllipses } from '@jbrowse/core/ui'\nimport { getSession, isElectron } from '@jbrowse/core/util'\n\n// icons\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore'\nimport ClearIcon from '@mui/icons-material/Clear'\nimport InfoOutlinedIcon from '@mui/icons-material/InfoOutlined'\n\n// locals\nimport InstalledPluginsList from './InstalledPluginsList'\nimport PluginCard from './PluginCard'\nimport { PluginStoreModel } from '../model'\nimport { useFetchPlugins } from './util'\n\n// lazies\nconst AddCustomPluginDialog = lazy(() => import('./AddCustomPluginDialog'))\n\nconst useStyles = makeStyles()(theme => ({\n  expandIcon: {\n    color: theme.palette.tertiary.contrastText,\n  },\n  adminBadge: {\n    borderRadius: 3,\n    backgroundColor: theme.palette.quaternary.main,\n    padding: '1em',\n    display: 'flex',\n    alignContent: 'center',\n  },\n  customPluginButton: {\n    margin: '1em auto',\n    display: 'flex',\n  },\n}))\n\nconst PluginStoreWidget = observer(function ({\n  model,\n}: {\n  model: PluginStoreModel\n}) {\n  const { classes } = useStyles()\n  const { plugins, error } = useFetchPlugins()\n  const [open, setOpen] = useState(false)\n  const { adminMode } = getSession(model)\n  const { pluginManager } = getEnv(model)\n\n  return (\n    <div>\n      {adminMode && (\n        <>\n          {!isElectron && (\n            <div className={classes.adminBadge}>\n              <InfoOutlinedIcon style={{ marginRight: '0.3em' }} />\n              <Typography>\n                You are using the <code>admin-server</code>. Any changes you\n                make will be saved to your configuration file. You also have the\n                ability to add custom plugins that are not in the store.\n              </Typography>\n            </div>\n          )}\n          <Button\n            className={classes.customPluginButton}\n            variant=\"contained\"\n            onClick={() => {\n              setOpen(true)\n            }}\n          >\n            Add custom plugin\n          </Button>\n          {open ? (\n            <Suspense fallback={null}>\n              <AddCustomPluginDialog\n                onClose={() => {\n                  setOpen(false)\n                }}\n                model={model}\n              />\n            </Suspense>\n          ) : null}\n        </>\n      )}\n      <TextField\n        label=\"Filter plugins\"\n        value={model.filterText}\n        onChange={event => {\n          model.setFilterText(event.target.value)\n        }}\n        fullWidth\n        InputProps={{\n          endAdornment: (\n            <InputAdornment position=\"end\">\n              <IconButton\n                onClick={() => {\n                  model.clearFilterText()\n                }}\n              >\n                <ClearIcon />\n              </IconButton>\n            </InputAdornment>\n          ),\n        }}\n      />\n      <Accordion defaultExpanded>\n        <AccordionSummary\n          expandIcon={<ExpandMoreIcon className={classes.expandIcon} />}\n        >\n          <Typography variant=\"h5\">Installed plugins</Typography>\n        </AccordionSummary>\n        <div style={{ margin: '1em' }}>\n          <InstalledPluginsList pluginManager={pluginManager} model={model} />\n        </div>\n      </Accordion>\n      <Accordion defaultExpanded>\n        <AccordionSummary\n          expandIcon={<ExpandMoreIcon className={classes.expandIcon} />}\n        >\n          <Typography variant=\"h5\">Available plugins</Typography>\n        </AccordionSummary>\n        {error ? (\n          <Typography color=\"error\">{`${error}`}</Typography>\n        ) : plugins ? (\n          plugins\n            .filter(plugin => {\n              // If plugin only has cjsUrl, don't display outside desktop\n              return (\n                !(isElectron && plugin.cjsUrl) &&\n                plugin.name\n                  .toLowerCase()\n                  .includes(model.filterText.toLowerCase())\n              )\n            })\n            .map(plugin => (\n              <PluginCard\n                key={plugin.name}\n                plugin={plugin}\n                model={model}\n                adminMode={!!adminMode}\n              />\n            ))\n        ) : (\n          <LoadingEllipses />\n        )}\n      </Accordion>\n    </div>\n  )\n})\n\nexport default PluginStoreWidget\n","import { useState, useEffect } from 'react'\n\nimport { JBrowsePlugin } from '@jbrowse/core/util/types'\n\nexport function useFetchPlugins() {\n  const [plugins, setPlugins] = useState<JBrowsePlugin[]>()\n  const [error, setError] = useState<unknown>()\n  useEffect(() => {\n    // eslint-disable-next-line @typescript-eslint/no-floating-promises\n    ;(async () => {\n      try {\n        const res = await fetch('https://jbrowse.org/plugin-store/plugins.json')\n        if (!res.ok) {\n          const err = await res.text()\n          throw new Error(`HTTP ${res.status} fetching plugins: ${err}`)\n        }\n        const array = await res.json()\n        setPlugins(array.plugins)\n      } catch (e) {\n        console.error(e)\n        setError(e)\n      }\n    })()\n  }, [])\n  return { plugins, error }\n}\n","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n  d: \"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"\n}), 'Check');","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n  d: \"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'ExpandMore');","\"use client\";\n\nimport createSvgIcon from './utils/createSvgIcon';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n  d: \"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1z\"\n}), 'Lock');","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAccordionSummaryUtilityClass(slot) {\n  return generateUtilityClass('MuiAccordionSummary', slot);\n}\nconst accordionSummaryClasses = generateUtilityClasses('MuiAccordionSummary', ['root', 'expanded', 'focusVisible', 'disabled', 'gutters', 'contentGutters', 'content', 'expandIconWrapper']);\nexport default accordionSummaryClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport AccordionContext from \"../Accordion/AccordionContext.js\";\nimport accordionSummaryClasses, { getAccordionSummaryUtilityClass } from \"./accordionSummaryClasses.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n  const {\n    classes,\n    expanded,\n    disabled,\n    disableGutters\n  } = ownerState;\n  const slots = {\n    root: ['root', expanded && 'expanded', disabled && 'disabled', !disableGutters && 'gutters'],\n    focusVisible: ['focusVisible'],\n    content: ['content', expanded && 'expanded', !disableGutters && 'contentGutters'],\n    expandIconWrapper: ['expandIconWrapper', expanded && 'expanded']\n  };\n  return composeClasses(slots, getAccordionSummaryUtilityClass, classes);\n};\nconst AccordionSummaryRoot = styled(ButtonBase, {\n  name: 'MuiAccordionSummary',\n  slot: 'Root',\n  overridesResolver: (props, styles) => styles.root\n})(memoTheme(({\n  theme\n}) => {\n  const transition = {\n    duration: theme.transitions.duration.shortest\n  };\n  return {\n    display: 'flex',\n    minHeight: 48,\n    padding: theme.spacing(0, 2),\n    transition: theme.transitions.create(['min-height', 'background-color'], transition),\n    [`&.${accordionSummaryClasses.focusVisible}`]: {\n      backgroundColor: (theme.vars || theme).palette.action.focus\n    },\n    [`&.${accordionSummaryClasses.disabled}`]: {\n      opacity: (theme.vars || theme).palette.action.disabledOpacity\n    },\n    [`&:hover:not(.${accordionSummaryClasses.disabled})`]: {\n      cursor: 'pointer'\n    },\n    variants: [{\n      props: props => !props.disableGutters,\n      style: {\n        [`&.${accordionSummaryClasses.expanded}`]: {\n          minHeight: 64\n        }\n      }\n    }]\n  };\n}));\nconst AccordionSummaryContent = styled('div', {\n  name: 'MuiAccordionSummary',\n  slot: 'Content',\n  overridesResolver: (props, styles) => styles.content\n})(memoTheme(({\n  theme\n}) => ({\n  display: 'flex',\n  flexGrow: 1,\n  margin: '12px 0',\n  variants: [{\n    props: props => !props.disableGutters,\n    style: {\n      transition: theme.transitions.create(['margin'], {\n        duration: theme.transitions.duration.shortest\n      }),\n      [`&.${accordionSummaryClasses.expanded}`]: {\n        margin: '20px 0'\n      }\n    }\n  }]\n})));\nconst AccordionSummaryExpandIconWrapper = styled('div', {\n  name: 'MuiAccordionSummary',\n  slot: 'ExpandIconWrapper',\n  overridesResolver: (props, styles) => styles.expandIconWrapper\n})(memoTheme(({\n  theme\n}) => ({\n  display: 'flex',\n  color: (theme.vars || theme).palette.action.active,\n  transform: 'rotate(0deg)',\n  transition: theme.transitions.create('transform', {\n    duration: theme.transitions.duration.shortest\n  }),\n  [`&.${accordionSummaryClasses.expanded}`]: {\n    transform: 'rotate(180deg)'\n  }\n})));\nconst AccordionSummary = /*#__PURE__*/React.forwardRef(function AccordionSummary(inProps, ref) {\n  const props = useDefaultProps({\n    props: inProps,\n    name: 'MuiAccordionSummary'\n  });\n  const {\n    children,\n    className,\n    expandIcon,\n    focusVisibleClassName,\n    onClick,\n    ...other\n  } = props;\n  const {\n    disabled = false,\n    disableGutters,\n    expanded,\n    toggle\n  } = React.useContext(AccordionContext);\n  const handleChange = event => {\n    if (toggle) {\n      toggle(event);\n    }\n    if (onClick) {\n      onClick(event);\n    }\n  };\n  const ownerState = {\n    ...props,\n    expanded,\n    disabled,\n    disableGutters\n  };\n  const classes = useUtilityClasses(ownerState);\n  return /*#__PURE__*/_jsxs(AccordionSummaryRoot, {\n    focusRipple: false,\n    disableRipple: true,\n    disabled: disabled,\n    component: \"div\",\n    \"aria-expanded\": expanded,\n    className: clsx(classes.root, className),\n    focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n    onClick: handleChange,\n    ref: ref,\n    ownerState: ownerState,\n    ...other,\n    children: [/*#__PURE__*/_jsx(AccordionSummaryContent, {\n      className: classes.content,\n      ownerState: ownerState,\n      children: children\n    }), expandIcon && /*#__PURE__*/_jsx(AccordionSummaryExpandIconWrapper, {\n      className: classes.expandIconWrapper,\n      ownerState: ownerState,\n      children: expandIcon\n    })]\n  });\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionSummary.propTypes /* remove-proptypes */ = {\n  // ┌────────────────────────────── Warning ──────────────────────────────┐\n  // │ These PropTypes are generated from the TypeScript type definitions. │\n  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │\n  // └─────────────────────────────────────────────────────────────────────┘\n  /**\n   * The content of the component.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * The icon to display as the expand indicator.\n   */\n  expandIcon: PropTypes.node,\n  /**\n   * This prop can help identify which element has keyboard focus.\n   * The class name will be applied when the element gains the focus through keyboard interaction.\n   * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n   * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n   * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n   * if needed.\n   */\n  focusVisibleClassName: PropTypes.string,\n  /**\n   * @ignore\n   */\n  onClick: PropTypes.func,\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default AccordionSummary;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Paper from \"../Paper/index.js\";\nimport { getCardUtilityClass } from \"./cardClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n  const {\n    classes\n  } = ownerState;\n  const slots = {\n    root: ['root']\n  };\n  return composeClasses(slots, getCardUtilityClass, classes);\n};\nconst CardRoot = styled(Paper, {\n  name: 'MuiCard',\n  slot: 'Root',\n  overridesResolver: (props, styles) => styles.root\n})({\n  overflow: 'hidden'\n});\nconst Card = /*#__PURE__*/React.forwardRef(function Card(inProps, ref) {\n  const props = useDefaultProps({\n    props: inProps,\n    name: 'MuiCard'\n  });\n  const {\n    className,\n    raised = false,\n    ...other\n  } = props;\n  const ownerState = {\n    ...props,\n    raised\n  };\n  const classes = useUtilityClasses(ownerState);\n  return /*#__PURE__*/_jsx(CardRoot, {\n    className: clsx(classes.root, className),\n    elevation: raised ? 8 : undefined,\n    ref: ref,\n    ownerState: ownerState,\n    ...other\n  });\n});\nprocess.env.NODE_ENV !== \"production\" ? Card.propTypes /* remove-proptypes */ = {\n  // ┌────────────────────────────── Warning ──────────────────────────────┐\n  // │ These PropTypes are generated from the TypeScript type definitions. │\n  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │\n  // └─────────────────────────────────────────────────────────────────────┘\n  /**\n   * The content of the component.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * If `true`, the card will use raised styling.\n   * @default false\n   */\n  raised: chainPropTypes(PropTypes.bool, props => {\n    if (props.raised && props.variant === 'outlined') {\n      return new Error('MUI: Combining `raised={true}` with `variant=\"outlined\"` has no effect.');\n    }\n    return null;\n  }),\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Card;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardUtilityClass(slot) {\n  return generateUtilityClass('MuiCard', slot);\n}\nconst cardClasses = generateUtilityClasses('MuiCard', ['root']);\nexport default cardClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getCardActionsUtilityClass } from \"./cardActionsClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n  const {\n    classes,\n    disableSpacing\n  } = ownerState;\n  const slots = {\n    root: ['root', !disableSpacing && 'spacing']\n  };\n  return composeClasses(slots, getCardActionsUtilityClass, classes);\n};\nconst CardActionsRoot = styled('div', {\n  name: 'MuiCardActions',\n  slot: 'Root',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.root, !ownerState.disableSpacing && styles.spacing];\n  }\n})({\n  display: 'flex',\n  alignItems: 'center',\n  padding: 8,\n  variants: [{\n    props: {\n      disableSpacing: false\n    },\n    style: {\n      '& > :not(style) ~ :not(style)': {\n        marginLeft: 8\n      }\n    }\n  }]\n});\nconst CardActions = /*#__PURE__*/React.forwardRef(function CardActions(inProps, ref) {\n  const props = useDefaultProps({\n    props: inProps,\n    name: 'MuiCardActions'\n  });\n  const {\n    disableSpacing = false,\n    className,\n    ...other\n  } = props;\n  const ownerState = {\n    ...props,\n    disableSpacing\n  };\n  const classes = useUtilityClasses(ownerState);\n  return /*#__PURE__*/_jsx(CardActionsRoot, {\n    className: clsx(classes.root, className),\n    ownerState: ownerState,\n    ref: ref,\n    ...other\n  });\n});\nprocess.env.NODE_ENV !== \"production\" ? CardActions.propTypes /* remove-proptypes */ = {\n  // ┌────────────────────────────── Warning ──────────────────────────────┐\n  // │ These PropTypes are generated from the TypeScript type definitions. │\n  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │\n  // └─────────────────────────────────────────────────────────────────────┘\n  /**\n   * The content of the component.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * If `true`, the actions do not have additional margin.\n   * @default false\n   */\n  disableSpacing: PropTypes.bool,\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default CardActions;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardActionsUtilityClass(slot) {\n  return generateUtilityClass('MuiCardActions', slot);\n}\nconst cardActionsClasses = generateUtilityClasses('MuiCardActions', ['root', 'spacing']);\nexport default cardActionsClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport { getCardContentUtilityClass } from \"./cardContentClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n  const {\n    classes\n  } = ownerState;\n  const slots = {\n    root: ['root']\n  };\n  return composeClasses(slots, getCardContentUtilityClass, classes);\n};\nconst CardContentRoot = styled('div', {\n  name: 'MuiCardContent',\n  slot: 'Root',\n  overridesResolver: (props, styles) => styles.root\n})({\n  padding: 16,\n  '&:last-child': {\n    paddingBottom: 24\n  }\n});\nconst CardContent = /*#__PURE__*/React.forwardRef(function CardContent(inProps, ref) {\n  const props = useDefaultProps({\n    props: inProps,\n    name: 'MuiCardContent'\n  });\n  const {\n    className,\n    component = 'div',\n    ...other\n  } = props;\n  const ownerState = {\n    ...props,\n    component\n  };\n  const classes = useUtilityClasses(ownerState);\n  return /*#__PURE__*/_jsx(CardContentRoot, {\n    as: component,\n    className: clsx(classes.root, className),\n    ownerState: ownerState,\n    ref: ref,\n    ...other\n  });\n});\nprocess.env.NODE_ENV !== \"production\" ? CardContent.propTypes /* remove-proptypes */ = {\n  // ┌────────────────────────────── Warning ──────────────────────────────┐\n  // │ These PropTypes are generated from the TypeScript type definitions. │\n  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │\n  // └─────────────────────────────────────────────────────────────────────┘\n  /**\n   * The content of the component.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: PropTypes.elementType,\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default CardContent;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardContentUtilityClass(slot) {\n  return generateUtilityClass('MuiCardContent', slot);\n}\nconst cardContentClasses = generateUtilityClasses('MuiCardContent', ['root']);\nexport default cardContentClasses;","import { getPath } from '@mui/system/style';\nimport { alpha } from '@mui/system/colorManipulator';\nconst getTextDecoration = ({\n  theme,\n  ownerState\n}) => {\n  const transformedColor = ownerState.color;\n  const color = getPath(theme, `palette.${transformedColor}`, false) || ownerState.color;\n  const channelColor = getPath(theme, `palette.${transformedColor}Channel`);\n  if ('vars' in theme && channelColor) {\n    return `rgba(${channelColor} / 0.4)`;\n  }\n  return alpha(color, 0.4);\n};\nexport default getTextDecoration;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { alpha } from '@mui/system/colorManipulator';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport composeClasses from '@mui/utils/composeClasses';\nimport isFocusVisible from '@mui/utils/isFocusVisible';\nimport capitalize from \"../utils/capitalize.js\";\nimport { styled, useTheme } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport Typography from \"../Typography/index.js\";\nimport linkClasses, { getLinkUtilityClass } from \"./linkClasses.js\";\nimport getTextDecoration from \"./getTextDecoration.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst v6Colors = {\n  primary: true,\n  secondary: true,\n  error: true,\n  info: true,\n  success: true,\n  warning: true,\n  textPrimary: true,\n  textSecondary: true,\n  textDisabled: true\n};\nconst useUtilityClasses = ownerState => {\n  const {\n    classes,\n    component,\n    focusVisible,\n    underline\n  } = ownerState;\n  const slots = {\n    root: ['root', `underline${capitalize(underline)}`, component === 'button' && 'button', focusVisible && 'focusVisible']\n  };\n  return composeClasses(slots, getLinkUtilityClass, classes);\n};\nconst LinkRoot = styled(Typography, {\n  name: 'MuiLink',\n  slot: 'Root',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.root, styles[`underline${capitalize(ownerState.underline)}`], ownerState.component === 'button' && styles.button];\n  }\n})(memoTheme(({\n  theme\n}) => {\n  return {\n    variants: [{\n      props: {\n        underline: 'none'\n      },\n      style: {\n        textDecoration: 'none'\n      }\n    }, {\n      props: {\n        underline: 'hover'\n      },\n      style: {\n        textDecoration: 'none',\n        '&:hover': {\n          textDecoration: 'underline'\n        }\n      }\n    }, {\n      props: {\n        underline: 'always'\n      },\n      style: {\n        textDecoration: 'underline',\n        '&:hover': {\n          textDecorationColor: 'inherit'\n        }\n      }\n    }, {\n      props: ({\n        underline,\n        ownerState\n      }) => underline === 'always' && ownerState.color !== 'inherit',\n      style: {\n        textDecorationColor: 'var(--Link-underlineColor)'\n      }\n    }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n      props: {\n        underline: 'always',\n        color\n      },\n      style: {\n        '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / 0.4)` : alpha(theme.palette[color].main, 0.4)\n      }\n    })), {\n      props: {\n        underline: 'always',\n        color: 'textPrimary'\n      },\n      style: {\n        '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / 0.4)` : alpha(theme.palette.text.primary, 0.4)\n      }\n    }, {\n      props: {\n        underline: 'always',\n        color: 'textSecondary'\n      },\n      style: {\n        '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette.text.secondaryChannel} / 0.4)` : alpha(theme.palette.text.secondary, 0.4)\n      }\n    }, {\n      props: {\n        underline: 'always',\n        color: 'textDisabled'\n      },\n      style: {\n        '--Link-underlineColor': (theme.vars || theme).palette.text.disabled\n      }\n    }, {\n      props: {\n        component: 'button'\n      },\n      style: {\n        position: 'relative',\n        WebkitTapHighlightColor: 'transparent',\n        backgroundColor: 'transparent',\n        // Reset default value\n        // We disable the focus ring for mouse, touch and keyboard users.\n        outline: 0,\n        border: 0,\n        margin: 0,\n        // Remove the margin in Safari\n        borderRadius: 0,\n        padding: 0,\n        // Remove the padding in Firefox\n        cursor: 'pointer',\n        userSelect: 'none',\n        verticalAlign: 'middle',\n        MozAppearance: 'none',\n        // Reset\n        WebkitAppearance: 'none',\n        // Reset\n        '&::-moz-focus-inner': {\n          borderStyle: 'none' // Remove Firefox dotted outline.\n        },\n        [`&.${linkClasses.focusVisible}`]: {\n          outline: 'auto'\n        }\n      }\n    }]\n  };\n}));\nconst Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {\n  const props = useDefaultProps({\n    props: inProps,\n    name: 'MuiLink'\n  });\n  const theme = useTheme();\n  const {\n    className,\n    color = 'primary',\n    component = 'a',\n    onBlur,\n    onFocus,\n    TypographyClasses,\n    underline = 'always',\n    variant = 'inherit',\n    sx,\n    ...other\n  } = props;\n  const [focusVisible, setFocusVisible] = React.useState(false);\n  const handleBlur = event => {\n    if (!isFocusVisible(event.target)) {\n      setFocusVisible(false);\n    }\n    if (onBlur) {\n      onBlur(event);\n    }\n  };\n  const handleFocus = event => {\n    if (isFocusVisible(event.target)) {\n      setFocusVisible(true);\n    }\n    if (onFocus) {\n      onFocus(event);\n    }\n  };\n  const ownerState = {\n    ...props,\n    color,\n    component,\n    focusVisible,\n    underline,\n    variant\n  };\n  const classes = useUtilityClasses(ownerState);\n  return /*#__PURE__*/_jsx(LinkRoot, {\n    color: color,\n    className: clsx(classes.root, className),\n    classes: TypographyClasses,\n    component: component,\n    onBlur: handleBlur,\n    onFocus: handleFocus,\n    ref: ref,\n    ownerState: ownerState,\n    variant: variant,\n    ...other,\n    sx: [...(v6Colors[color] === undefined ? [{\n      color\n    }] : []), ...(Array.isArray(sx) ? sx : [sx])],\n    style: {\n      ...other.style,\n      ...(underline === 'always' && color !== 'inherit' && !v6Colors[color] && {\n        '--Link-underlineColor': getTextDecoration({\n          theme,\n          ownerState\n        })\n      })\n    }\n  });\n});\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes /* remove-proptypes */ = {\n  // ┌────────────────────────────── Warning ──────────────────────────────┐\n  // │ These PropTypes are generated from the TypeScript type definitions. │\n  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │\n  // └─────────────────────────────────────────────────────────────────────┘\n  /**\n   * The content of the component.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * The color of the link.\n   * @default 'primary'\n   */\n  color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'success', 'error', 'info', 'warning', 'textPrimary', 'textSecondary', 'textDisabled']), PropTypes.string]),\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: elementTypeAcceptingRef,\n  /**\n   * @ignore\n   */\n  onBlur: PropTypes.func,\n  /**\n   * @ignore\n   */\n  onFocus: PropTypes.func,\n  /**\n   * @ignore\n   */\n  style: PropTypes.object,\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n  /**\n   * `classes` prop applied to the [`Typography`](https://mui.com/material-ui/api/typography/) element.\n   */\n  TypographyClasses: PropTypes.object,\n  /**\n   * Controls when the link should have an underline.\n   * @default 'always'\n   */\n  underline: PropTypes.oneOf(['always', 'hover', 'none']),\n  /**\n   * Applies the theme typography styles.\n   * @default 'inherit'\n   */\n  variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['body1', 'body2', 'button', 'caption', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'inherit', 'overline', 'subtitle1', 'subtitle2']), PropTypes.string])\n} : void 0;\nexport default Link;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getLinkUtilityClass(slot) {\n  return generateUtilityClass('MuiLink', slot);\n}\nconst linkClasses = generateUtilityClasses('MuiLink', ['root', 'underlineNone', 'underlineHover', 'underlineAlways', 'button', 'focusVisible']);\nexport default linkClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport isHostComponent from \"../utils/isHostComponent.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport isMuiElement from \"../utils/isMuiElement.js\";\nimport useForkRef from \"../utils/useForkRef.js\";\nimport ListContext from \"../List/ListContext.js\";\nimport { getListItemUtilityClass } from \"./listItemClasses.js\";\nimport { listItemButtonClasses } from \"../ListItemButton/index.js\";\nimport ListItemSecondaryAction from \"../ListItemSecondaryAction/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const overridesResolver = (props, styles) => {\n  const {\n    ownerState\n  } = props;\n  return [styles.root, ownerState.dense && styles.dense, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart, ownerState.divider && styles.divider, !ownerState.disableGutters && styles.gutters, !ownerState.disablePadding && styles.padding, ownerState.hasSecondaryAction && styles.secondaryAction];\n};\nconst useUtilityClasses = ownerState => {\n  const {\n    alignItems,\n    classes,\n    dense,\n    disableGutters,\n    disablePadding,\n    divider,\n    hasSecondaryAction\n  } = ownerState;\n  const slots = {\n    root: ['root', dense && 'dense', !disableGutters && 'gutters', !disablePadding && 'padding', divider && 'divider', alignItems === 'flex-start' && 'alignItemsFlexStart', hasSecondaryAction && 'secondaryAction'],\n    container: ['container']\n  };\n  return composeClasses(slots, getListItemUtilityClass, classes);\n};\nexport const ListItemRoot = styled('div', {\n  name: 'MuiListItem',\n  slot: 'Root',\n  overridesResolver\n})(memoTheme(({\n  theme\n}) => ({\n  display: 'flex',\n  justifyContent: 'flex-start',\n  alignItems: 'center',\n  position: 'relative',\n  textDecoration: 'none',\n  width: '100%',\n  boxSizing: 'border-box',\n  textAlign: 'left',\n  variants: [{\n    props: ({\n      ownerState\n    }) => !ownerState.disablePadding,\n    style: {\n      paddingTop: 8,\n      paddingBottom: 8\n    }\n  }, {\n    props: ({\n      ownerState\n    }) => !ownerState.disablePadding && ownerState.dense,\n    style: {\n      paddingTop: 4,\n      paddingBottom: 4\n    }\n  }, {\n    props: ({\n      ownerState\n    }) => !ownerState.disablePadding && !ownerState.disableGutters,\n    style: {\n      paddingLeft: 16,\n      paddingRight: 16\n    }\n  }, {\n    props: ({\n      ownerState\n    }) => !ownerState.disablePadding && !!ownerState.secondaryAction,\n    style: {\n      // Add some space to avoid collision as `ListItemSecondaryAction`\n      // is absolutely positioned.\n      paddingRight: 48\n    }\n  }, {\n    props: ({\n      ownerState\n    }) => !!ownerState.secondaryAction,\n    style: {\n      [`& > .${listItemButtonClasses.root}`]: {\n        paddingRight: 48\n      }\n    }\n  }, {\n    props: {\n      alignItems: 'flex-start'\n    },\n    style: {\n      alignItems: 'flex-start'\n    }\n  }, {\n    props: ({\n      ownerState\n    }) => ownerState.divider,\n    style: {\n      borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`,\n      backgroundClip: 'padding-box'\n    }\n  }, {\n    props: ({\n      ownerState\n    }) => ownerState.button,\n    style: {\n      transition: theme.transitions.create('background-color', {\n        duration: theme.transitions.duration.shortest\n      }),\n      '&:hover': {\n        textDecoration: 'none',\n        backgroundColor: (theme.vars || theme).palette.action.hover,\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        }\n      }\n    }\n  }, {\n    props: ({\n      ownerState\n    }) => ownerState.hasSecondaryAction,\n    style: {\n      // Add some space to avoid collision as `ListItemSecondaryAction`\n      // is absolutely positioned.\n      paddingRight: 48\n    }\n  }]\n})));\nconst ListItemContainer = styled('li', {\n  name: 'MuiListItem',\n  slot: 'Container',\n  overridesResolver: (props, styles) => styles.container\n})({\n  position: 'relative'\n});\n\n/**\n * Uses an additional container component if `ListItemSecondaryAction` is the last child.\n */\nconst ListItem = /*#__PURE__*/React.forwardRef(function ListItem(inProps, ref) {\n  const props = useDefaultProps({\n    props: inProps,\n    name: 'MuiListItem'\n  });\n  const {\n    alignItems = 'center',\n    children: childrenProp,\n    className,\n    component: componentProp,\n    components = {},\n    componentsProps = {},\n    ContainerComponent = 'li',\n    ContainerProps: {\n      className: ContainerClassName,\n      ...ContainerProps\n    } = {},\n    dense = false,\n    disableGutters = false,\n    disablePadding = false,\n    divider = false,\n    secondaryAction,\n    slotProps = {},\n    slots = {},\n    ...other\n  } = props;\n  const context = React.useContext(ListContext);\n  const childContext = React.useMemo(() => ({\n    dense: dense || context.dense || false,\n    alignItems,\n    disableGutters\n  }), [alignItems, context.dense, dense, disableGutters]);\n  const listItemRef = React.useRef(null);\n  const children = React.Children.toArray(childrenProp);\n\n  // v4 implementation, deprecated in v6, will be removed in v7\n  const hasSecondaryAction = children.length && isMuiElement(children[children.length - 1], ['ListItemSecondaryAction']);\n  const ownerState = {\n    ...props,\n    alignItems,\n    dense: childContext.dense,\n    disableGutters,\n    disablePadding,\n    divider,\n    hasSecondaryAction\n  };\n  const classes = useUtilityClasses(ownerState);\n  const handleRef = useForkRef(listItemRef, ref);\n  const Root = slots.root || components.Root || ListItemRoot;\n  const rootProps = slotProps.root || componentsProps.root || {};\n  const componentProps = {\n    className: clsx(classes.root, rootProps.className, className),\n    ...other\n  };\n  let Component = componentProp || 'li';\n\n  // v4 implementation, deprecated in v6, will be removed in v7\n  if (hasSecondaryAction) {\n    // Use div by default.\n    Component = !componentProps.component && !componentProp ? 'div' : Component;\n\n    // Avoid nesting of li > li.\n    if (ContainerComponent === 'li') {\n      if (Component === 'li') {\n        Component = 'div';\n      } else if (componentProps.component === 'li') {\n        componentProps.component = 'div';\n      }\n    }\n    return /*#__PURE__*/_jsx(ListContext.Provider, {\n      value: childContext,\n      children: /*#__PURE__*/_jsxs(ListItemContainer, {\n        as: ContainerComponent,\n        className: clsx(classes.container, ContainerClassName),\n        ref: handleRef,\n        ownerState: ownerState,\n        ...ContainerProps,\n        children: [/*#__PURE__*/_jsx(Root, {\n          ...rootProps,\n          ...(!isHostComponent(Root) && {\n            as: Component,\n            ownerState: {\n              ...ownerState,\n              ...rootProps.ownerState\n            }\n          }),\n          ...componentProps,\n          children: children\n        }), children.pop()]\n      })\n    });\n  }\n  return /*#__PURE__*/_jsx(ListContext.Provider, {\n    value: childContext,\n    children: /*#__PURE__*/_jsxs(Root, {\n      ...rootProps,\n      as: Component,\n      ref: handleRef,\n      ...(!isHostComponent(Root) && {\n        ownerState: {\n          ...ownerState,\n          ...rootProps.ownerState\n        }\n      }),\n      ...componentProps,\n      children: [children, secondaryAction && /*#__PURE__*/_jsx(ListItemSecondaryAction, {\n        children: secondaryAction\n      })]\n    })\n  });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItem.propTypes /* remove-proptypes */ = {\n  // ┌────────────────────────────── Warning ──────────────────────────────┐\n  // │ These PropTypes are generated from the TypeScript type definitions. │\n  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │\n  // └─────────────────────────────────────────────────────────────────────┘\n  /**\n   * Defines the `align-items` style property.\n   * @default 'center'\n   */\n  alignItems: PropTypes.oneOf(['center', 'flex-start']),\n  /**\n   * The content of the component if a `ListItemSecondaryAction` is used it must\n   * be the last child.\n   */\n  children: chainPropTypes(PropTypes.node, props => {\n    const children = React.Children.toArray(props.children);\n\n    // React.Children.toArray(props.children).findLastIndex(isListItemSecondaryAction)\n    let secondaryActionIndex = -1;\n    for (let i = children.length - 1; i >= 0; i -= 1) {\n      const child = children[i];\n      if (isMuiElement(child, ['ListItemSecondaryAction'])) {\n        secondaryActionIndex = i;\n        break;\n      }\n    }\n\n    //  is ListItemSecondaryAction the last child of ListItem\n    if (secondaryActionIndex !== -1 && secondaryActionIndex !== children.length - 1) {\n      return new Error('MUI: You used an element after ListItemSecondaryAction. ' + 'For ListItem to detect that it has a secondary action ' + 'you must pass it as the last child to ListItem.');\n    }\n    return null;\n  }),\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: PropTypes.elementType,\n  /**\n   * The components used for each slot inside.\n   *\n   * @deprecated Use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n   * @default {}\n   */\n  components: PropTypes.shape({\n    Root: PropTypes.elementType\n  }),\n  /**\n   * The extra props for the slot components.\n   * You can override the existing props or add new ones.\n   *\n   * @deprecated Use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n   * @default {}\n   */\n  componentsProps: PropTypes.shape({\n    root: PropTypes.object\n  }),\n  /**\n   * The container component used when a `ListItemSecondaryAction` is the last child.\n   * @default 'li'\n   * @deprecated Use the `component` or `slots.root` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n   */\n  ContainerComponent: elementTypeAcceptingRef,\n  /**\n   * Props applied to the container component if used.\n   * @default {}\n   * @deprecated Use the `slotProps.root` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n   */\n  ContainerProps: PropTypes.object,\n  /**\n   * If `true`, compact vertical padding designed for keyboard and mouse input is used.\n   * The prop defaults to the value inherited from the parent List component.\n   * @default false\n   */\n  dense: PropTypes.bool,\n  /**\n   * If `true`, the left and right padding is removed.\n   * @default false\n   */\n  disableGutters: PropTypes.bool,\n  /**\n   * If `true`, all padding is removed.\n   * @default false\n   */\n  disablePadding: PropTypes.bool,\n  /**\n   * If `true`, a 1px light border is added to the bottom of the list item.\n   * @default false\n   */\n  divider: PropTypes.bool,\n  /**\n   * The element to display at the end of ListItem.\n   */\n  secondaryAction: PropTypes.node,\n  /**\n   * The extra props for the slot components.\n   * You can override the existing props or add new ones.\n   *\n   * @default {}\n   */\n  slotProps: PropTypes.shape({\n    root: PropTypes.object\n  }),\n  /**\n   * The components used for each slot inside.\n   *\n   * @default {}\n   */\n  slots: PropTypes.shape({\n    root: PropTypes.elementType\n  }),\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default ListItem;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListItemUtilityClass(slot) {\n  return generateUtilityClass('MuiListItem', slot);\n}\nconst listItemClasses = generateUtilityClasses('MuiListItem', ['root', 'container', 'dense', 'alignItemsFlexStart', 'divider', 'gutters', 'padding', 'secondaryAction']);\nexport default listItemClasses;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListItemButtonUtilityClass(slot) {\n  return generateUtilityClass('MuiListItemButton', slot);\n}\nconst listItemButtonClasses = generateUtilityClasses('MuiListItemButton', ['root', 'focusVisible', 'dense', 'alignItemsFlexStart', 'disabled', 'divider', 'gutters', 'selected']);\nexport default listItemButtonClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport ListContext from \"../List/ListContext.js\";\nimport { getListItemSecondaryActionClassesUtilityClass } from \"./listItemSecondaryActionClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n  const {\n    disableGutters,\n    classes\n  } = ownerState;\n  const slots = {\n    root: ['root', disableGutters && 'disableGutters']\n  };\n  return composeClasses(slots, getListItemSecondaryActionClassesUtilityClass, classes);\n};\nconst ListItemSecondaryActionRoot = styled('div', {\n  name: 'MuiListItemSecondaryAction',\n  slot: 'Root',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.root, ownerState.disableGutters && styles.disableGutters];\n  }\n})({\n  position: 'absolute',\n  right: 16,\n  top: '50%',\n  transform: 'translateY(-50%)',\n  variants: [{\n    props: ({\n      ownerState\n    }) => ownerState.disableGutters,\n    style: {\n      right: 0\n    }\n  }]\n});\n\n/**\n * Must be used as the last child of ListItem to function properly.\n *\n * @deprecated Use the `secondaryAction` prop in the `ListItem` component instead. This component will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\nconst ListItemSecondaryAction = /*#__PURE__*/React.forwardRef(function ListItemSecondaryAction(inProps, ref) {\n  const props = useDefaultProps({\n    props: inProps,\n    name: 'MuiListItemSecondaryAction'\n  });\n  const {\n    className,\n    ...other\n  } = props;\n  const context = React.useContext(ListContext);\n  const ownerState = {\n    ...props,\n    disableGutters: context.disableGutters\n  };\n  const classes = useUtilityClasses(ownerState);\n  return /*#__PURE__*/_jsx(ListItemSecondaryActionRoot, {\n    className: clsx(classes.root, className),\n    ownerState: ownerState,\n    ref: ref,\n    ...other\n  });\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemSecondaryAction.propTypes /* remove-proptypes */ = {\n  // ┌────────────────────────────── Warning ──────────────────────────────┐\n  // │ These PropTypes are generated from the TypeScript type definitions. │\n  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │\n  // └─────────────────────────────────────────────────────────────────────┘\n  /**\n   * The content of the component, normally an `IconButton` or selection control.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nListItemSecondaryAction.muiName = 'ListItemSecondaryAction';\nexport default ListItemSecondaryAction;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListItemSecondaryActionClassesUtilityClass(slot) {\n  return generateUtilityClass('MuiListItemSecondaryAction', slot);\n}\nconst listItemSecondaryActionClasses = generateUtilityClasses('MuiListItemSecondaryAction', ['root', 'disableGutters']);\nexport default listItemSecondaryActionClasses;"],"names":["createSvgIcon","d","DeletePluginDialog","lazy","useStyles","makeStyles","lockedPluginTooltip","marginRight","LockedPlugin","classes","React","Tooltip","className","title","LockIcon","observer","plugin","model","dialogPlugin","setDialogPlugin","useState","pluginManager","getEnv","session","getSession","jbrowse","adminMode","isSessionPlugin","isSessionWithSessionPlugins","sessionPlugins","some","p","pluginMetadata","name","url","Suspense","fallback","onClose","removePlugin","removeSessionPlugin","undefined","ListItem","key","IconButton","onClick","CloseIcon","Typography","plugins","filterText","externalPlugins","filter","isCore","List","length","toLowerCase","includes","map","InstalledPlugin","card","margin","icon","marginLeft","bold","fontWeight","dataField","display","alignItems","runtimePluginDefinitions","isInstalled","tempDisabled","setTempDisabled","disableButton","rootModel","getParent","Card","variant","CardContent","Link","href","location","target","rel","PersonIcon","style","authors","join","description","CardActions","Button","disabled","startIcon","CheckIcon","AddIcon","addPlugin","addSessionPlugin","AddCustomPluginDialog","theme","expandIcon","color","palette","tertiary","contrastText","adminBadge","borderRadius","backgroundColor","quaternary","main","padding","alignContent","customPluginButton","error","setPlugins","setError","useEffect","res","fetch","ok","err","text","Error","status","array","json","e","console","useFetchPlugins","open","setOpen","isElectron","InfoOutlinedIcon","TextField","label","value","onChange","event","setFilterText","fullWidth","InputProps","endAdornment","InputAdornment","position","clearFilterText","ClearIcon","Accordion","defaultExpanded","AccordionSummary","ExpandMoreIcon","InstalledPluginsList","cjsUrl","PluginCard","LoadingEllipses","getAccordionSummaryUtilityClass","slot","generateUtilityClass","generateUtilityClasses","AccordionSummaryRoot","styled","ButtonBase","overridesResolver","props","styles","root","memoTheme","transition","duration","transitions","shortest","minHeight","spacing","create","focusVisible","vars","action","focus","opacity","disabledOpacity","cursor","variants","disableGutters","expanded","AccordionSummaryContent","content","flexGrow","AccordionSummaryExpandIconWrapper","expandIconWrapper","active","transform","inProps","ref","children","focusVisibleClassName","other","toggle","AccordionContext","A","ownerState","slots","composeClasses","useUtilityClasses","focusRipple","disableRipple","component","clsx","CardRoot","overflow","raised","elevation","getCardUtilityClass","CardActionsRoot","disableSpacing","getCardActionsUtilityClass","CardContentRoot","paddingBottom","as","getCardContentUtilityClass","transformedColor","channelColor","v6Colors","primary","secondary","info","success","warning","textPrimary","textSecondary","textDisabled","LinkRoot","capitalize","underline","button","textDecoration","textDecorationColor","Object","entries","createSimplePaletteValueFilter","mainChannel","primaryChannel","secondaryChannel","WebkitTapHighlightColor","outline","border","userSelect","verticalAlign","MozAppearance","WebkitAppearance","borderStyle","linkClasses","useTheme","onBlur","onFocus","TypographyClasses","sx","setFocusVisible","isFocusVisible","Array","isArray","getLinkUtilityClass","ListItemRoot","dense","alignItemsFlexStart","divider","gutters","disablePadding","hasSecondaryAction","secondaryAction","justifyContent","width","boxSizing","textAlign","paddingTop","paddingLeft","paddingRight","borderBottom","backgroundClip","hover","ListItemContainer","container","childrenProp","componentProp","components","componentsProps","ContainerComponent","ContainerProps","ContainerClassName","slotProps","context","childContext","listItemRef","toArray","handleRef","Root","rootProps","componentProps","Component","Provider","pop","getListItemUtilityClass","getListItemButtonUtilityClass","ListItemSecondaryActionRoot","right","top","ListItemSecondaryAction","g","muiName","getListItemSecondaryActionClassesUtilityClass"],"sourceRoot":""}