{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6MM,MAAM,0DACX,CAAA,GAAA,0BAAY,EAAoD;AAM3D,MAAM,4CAAyB,AAAd,WAAW,GAAI,CAAA,GAAA,uBAAS,EAAqB,SAAS,SAC5E,KAAuB,EACvB,GAAiC;IAEjC,+FAA+F;IAC/F,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAE3C,qBACE,0DAAC,CAAA,GAAA,mDAAgB;QAAE,uBAAS,0DAAC,CAAA,GAAA,qCAAS,GAAM;OACzC,CAAA,2BAAc,0DAAC;YAAc,OAAO;YAAO,YAAY;YAAY,aAAa;;AAGvF;AAQA,SAAS,oCAAiB,SAAC,KAAK,cAAE,UAAU,EAAE,aAAa,GAAG,EAAwB;IACpF,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK,CAAA,GAAA,qDAA0B;IACrE,IAAI,yBACF,6DAA6D;IAC7D,qBAAqB,UACrB,MAAM,qBACN,iBAAiB,yBACjB,qBAAqB,EACrB,GAAG,oBACJ,GAAG;IACJ,IAAI,oBACF,gBAAgB,8BAChB,6BAA6B,iBAC7B,SAAS,sBACT,cAAc,YACf,GAAG;IACJ,IAAI,kBACF,cAAc,iBACd,aAAa,kBACb,cAAc,EACd,oBAAoB,qBAAqB,EAC1C,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,mDAAwB;IACvC,IAAI,gBAAgB,CAAA,GAAA,4CAAW,EAAE;QAC/B,GAAG,kBAAkB;oBACrB;QACA,UAAU;wBACV;IACF;IAEA,IAAI,gBAAgB,CAAA,GAAA,6DAA4B,EAAE,eAA+B;IACjF,IAAI,WAAW,CAAA,GAAA,uCAAU,EAAE;QAAC,OAAO;QAAU,aAAa;IAAM;IAChE,IAAI,oBAAC,gBAAgB,gBAAE,YAAY,EAAC,GAAG,cAAc,gBAAgB;IACrE,IAAI,aAAC,SAAS,EAAC,GAAG,CAAA,GAAA,sCAAQ;IAC1B,IAAI,mBAAmB,CAAA,GAAA,oBAAM,EAC3B,IACE,IAAI,CAAA,GAAA,yDAAmB,EAAE;YACvB,YAAY,cAAc,UAAU;sBACpC;iBACA;0BACA;8BACA;4BACA;oBACA;yBACA;uBACA;QACF,IACF;QACE,cAAc,UAAU;QACxB;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IAGH,IAAI,aAAC,SAAS,EAAC,GAAG,CAAA,GAAA,uCAAU,EAC1B;QACE,GAAG,kBAAkB;0BACrB;QACA,mDAAmD;QACnD,4BAA4B,WAAW,SAAS,QAAQ;uBACxD;QACA,uBAAuB,MAAM,qBAAqB;2BAClD;+BACA;IACF,GACA,eACA;IAGF,IAAI,mBAAmB,cAAc,gBAAgB;IACrD,IAAI,kBAAkB,CAAC,CAAC,kBAAkB;IAC1C,IAAI,kBAAkB,CAAC,CAAC,kBAAkB;IAC1C,IAAI,oBAAoB,CAAA,GAAA,mBAAK,EAAE;IAC/B,IAAI,oBAAoB,CAAA,GAAA,mBAAK,EAAE;IAC/B,CAAA,GAAA,sBAAQ,EAAE;QACR,IAAI,QAAQ,GAAG,CAAC,QAAQ,KAAK,cAC3B;QAEF,IAAI,kBAAkB,OAAO,KAAK,iBAChC,QAAQ,IAAI,CACV;QAGJ,IAAI,kBAAkB,OAAO,KAAK,iBAChC,QAAQ,IAAI,CACV;IAGN,GAAG;QAAC;QAAiB;KAAgB;IAErC,IAAI,YAAkD;IACtD,IAAI,YAAkD;IACtD,IAAI,sBAA6D;IACjE,IAAI,mBAAmB;IACvB,IAAI,cAAkC;IACtC,IAAI,UAAU,CAAA,GAAA,mBAAK,EAAuB;IAE1C,IAAI,mBAAmB,kBAAkB;QACvC,YAAY,iBAAiB,2BAA2B,CAAE;YACxD,YAAY,cAAc,UAAU;8BACpC;YACA,SAAS,iBAAiB,iBAAiB,GAAG,UAAU;QAC1D;QACA,iBAAiB,sBAAsB,CAAE,CAAC,GAAG,WAAW;QAExD,IAAI,cAAc,iBAAiB,WAAW;QAC9C,cAAc,iBAAiB,iBAAiB,iBAC9C,0DAAC;YAAY,KAAK;WAAU,iBAAiB,iBAAiB,IAC5D;IACN;IAEA,IAAI,mBAAmB,kBAAkB;QACvC,YAAY,iBAAiB,2BAA2B,CAAE;YACxD,YAAY,cAAc,UAAU;8BACpC;QACF;QAEA,IAAI,qBACF,iBAAiB,kBAAkB,IACnC,yBACA,IAAI,iBAAiB,sBAAsB,CAAC,YAAY,KAAK;oBAC3D;uBACA;yBACA;QACF;QACF,sBAAsB,iBAAiB,sBAAsB,CAC3D;8BACE;gCACA;QACF,GACA,WACA;QAGF,mBAAmB,UAAU,YAAY,CAAC;YAAC,MAAM;QAAM;IACzD;IAEA,IAAI,cAAC,UAAU,aAAE,SAAS,kBAAE,cAAc,EAAC,GAAG,CAAA,GAAA,yCAAW;IACzD,IAAI,UAAU,cAAc,UAAU,CAAC,IAAI,KAAK;IAChD,IAAI,eAAe;QACjB,cAAc;qBACd;iBACA;mBACA;wBACA;gBACA;QACA,OAAO;IACT;IACA,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,UAAU;QACV,kBAAkB;QAClB,QAAQ;IACV;IAEA,IAAI,aAAwB;IAC5B,IAAI,0BAA8D;IAElE,IAAI,WAAW,MAAM,gBAAgB,EAAE;QACrC,IAAI,UAAU,MAAM,gBAAgB,CAAC;QACrC,2BACE,0DAAC;YAAI,MAAK;YAAM,iBAAe;YAAG,OAAO;gBAAC,SAAS;YAAU;yBAC3D,0DAAC;YAAI,MAAK;YAAW,OAAO;gBAAC,SAAS;YAAU;WAC7C;IAIT;IAEA,IAAI,WAAW,CAAA,GAAA,6CAAa,EAAE,OAAO;QAAC,QAAQ;IAAI;IAElD,qBACE,0DAAC,CAAA,GAAA,qCAAS,uBACR,0DAAC,CAAA,GAAA,6BAAE,EAAE,GAAG;QACL,GAAG,CAAA,GAAA,qCAAS,EACX,UACA,aACA,WACA,YACA,qBAAqB,iBACrB,wBACD;QACD,KAAK;QACL,MAAM,MAAM,IAAI,IAAI;QACpB,UAAU,MAAM,QAAQ;QACxB,oBAAkB,oBAAoB;QACtC,cAAY,WAAW;QACvB,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;QACtC,eAAa;QACb,oBAAkB;qBAClB,0DAAC,CAAA,GAAA,kCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,0CAAe;gBAAG;aAAc;YACjC;gBAAC,CAAA,GAAA,4CAAiB;gBAAG;sCAAC;+BAAkB;+BAAW;gBAAS;aAAE;YAC9D;gBAAC,CAAA,GAAA,8CAAmB;gBAAG;oBAAC,QAAQ;gBAA4B;aAAE;SAC/D;OACA,iCAAmB,0DAAC,8DACrB,0DAAC,CAAA,GAAA,iDAAsB,uBACrB,0DAAC;QACC,YAAY,cAAc,UAAU;QACpC,WAAW;QACX,eAAe,CAAA,GAAA,6CAAkB,EAAE,kBAAkB,kBAAkB;QACvE,qBAAqB,CAAA,GAAA,gDAAqB,EAAE,kBAAkB;UAInE,YACA;AAIT;AAoDO,MAAM,4CAAe,WAAW,GAAG,CAAA,GAAA,qDAAkB,EAAE,CAAA,GAAA,yDAAO,GAAG,SAAS,aAE/E,KAA2B,EAAE,YAA0C,EAAE,IAAa;IACtF,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,0CAAe;IACtC,IAAI,oBAAC,gBAAgB,aAAE,SAAS,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,4CAAiB;IAC3E,IAAI,MAAM,CAAA,GAAA,yCAAW,EAAkB;IACvC,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,mDAAwB;IACzD,IAAI,cACF,aAAa,CAAE,CAAA,UAAU,UAAU,IAAI,UAAU,gBAAgB,CAAC,UAAU,CAAC,KAAK,GAAG,CAAA;IACvF,IAAI,YAAC,QAAQ,iBAAE,aAAa,oBAAE,gBAAgB,EAAE,GAAG,QAAO,GAAG,CAAA,GAAA,2CAAc,EACzE;QACE,MAAM;QACN,uBAAuB,CAAC,CAAC;uBACzB;IACF,GACA,OACA;IAGF,IAAI,cAAC,UAAU,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,iCAAO,EAAE;QACrC,qHAAqH;QACrH,4EAA4E;QAC5E,YAAY,CAAC,OAAO,eAAe,IAAI,CAAC,OAAO,SAAS,IAAI,CAAC;QAC7D,cAAc,KAAK,KAAK,CAAC,YAAY;QACrC,eAAe,KAAK,KAAK,CAAC,aAAa;QACvC,YAAY,KAAK,KAAK,CAAC,UAAU;IACnC;IAEA,IAAI,kBAAC,cAAc,cAAE,UAAU,EAAC,GAAG,CAAA,GAAA,yCAAW;IAC9C,IAAI,EAAC,gBAAgB,oBAAoB,EAAE,YAAY,gBAAgB,EAAC,GAAG,CAAA,GAAA,yCAAW,EAAE;QACtF,QAAQ;IACV;IACA,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,wDAA2B,EAAE;QAAC,KAAK,KAAK,GAAG;IAAA,GAAG;IAEpE,IAAI,cACF,MAAM,gBAAgB,CAAC,gBAAgB,KAAK,SAAS,OAAO,UAAU,GAClE;QAAC,YAAY;IAAI,IACjB,CAAC;IAEP,IAAI,gBAA4C;IAChD,IAAI,aAAa,kBACf,gBAAgB,iBAAiB,gBAAgB,CAC/C;QAAC,KAAK,KAAK,GAAG;QAAE,eAAe;IAAI,GACnC;IAIJ,IAAI,gBAA0C;IAC9C,IAAI,mBAAmB,CAAA,GAAA,mBAAK,EAAkB;IAC9C,IAAI,uBAAC,mBAAmB,EAAC,GAAG,CAAA,GAAA,gDAAgB;IAC5C,IAAI,aAAa,kBACf,gBAAgB,iBAAiB,gBAAgB,CAC/C;QACE,QAAQ;YAAC,MAAM;YAAQ,KAAK,KAAK,GAAG;YAAE,cAAc;QAAI;IAC1D,GACA,WACA;IAIJ,IAAI,aAAa,aAAa,UAAU,UAAU,CAAC,KAAK,GAAG;IAC3D,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,IAAI;QACJ,UAAU,KAAK,QAAQ;QACvB,kBAAkB;QAClB,QAAQ;YACN,GAAG,MAAM;uBACT;4BACA;kCACA;YACA,eAAe,MAAM,gBAAgB,CAAC,aAAa;YACnD,mBAAmB,MAAM,gBAAgB,CAAC,iBAAiB;YAC3D,gBAAgB,CAAC,CAAC;wBAClB;YACA,cAAc,eAAe;YAC7B,IAAI,KAAK,GAAG;mBACZ;QACF;IACF;IAEA,IAAI,gBAAgB,CAAA,GAAA,mBAAK,EAAqB;IAC9C,CAAA,GAAA,sBAAQ,EAAE;QACR,IAAI,aAAa,CAAC,cAAc,OAAO,EACrC,QAAQ,IAAI,CACV;IAGJ,2BAA2B;IAC7B,GAAG,EAAE;IAEL,CAAA,GAAA,sBAAQ,EAAE;QACR,IAAI,CAAC,KAAK,SAAS,IAAI,QAAQ,GAAG,CAAC,QAAQ,KAAK,cAC9C,QAAQ,IAAI,CACV;IAGN,GAAG;QAAC,KAAK,SAAS;KAAC;IAEnB,IAAI,WAAW,CAAA,GAAA,6CAAa,EAAE,OAAc;QAAC,QAAQ;IAAI;IACzD,OAAO,SAAS,EAAE;IAClB,OAAO,SAAS,OAAO;IAEvB,qBACE,sHACG,iBAAiB,CAAC,cAAc,QAAQ,kBACvC,0DAAC;QAAI,MAAK;QAAM,OAAO;YAAC,UAAU;QAAU;qBAC1C,0DAAC;QAAI,MAAK;qBACR,0DAAC;QACC,MAAK;QACJ,GAAG,mBAAmB;QACtB,GAAG,eAAe,kBAAkB;QACrC,KAAK;wBAKb,0DAAC,CAAA,GAAA,6BAAE,EAAE,GAAG;QACL,GAAG,CAAA,GAAA,qCAAS,EACX,UACA,aACA,UACA,YACA,kBACA,YACA,eAAe,UAChB;QACD,KAAK;QACL,iBAAe,OAAO,UAAU,IAAI;QACpC,iBAAe,OAAO,UAAU,IAAI;QACpC,gBAAc,aAAa;QAC3B,gBAAc,OAAO,SAAS,IAAI;QAClC,sBAAoB,kBAAkB;QACtC,6BAA2B,wBAAwB;QACnD,gBAAc,OAAO,SAAS,IAAI;QAClC,wBAAsB,CAAC,CAAC,aAAa;QACrC,iBAAe,cAAc;QAC7B,oBAAkB,eAAe,gBAAgB;QACjD,uBACE,MAAM,gBAAgB,CAAC,aAAa,KAAK,SACrC,YACA,MAAM,gBAAgB,CAAC,aAAa;qBAE1C,0DAAC;QAAK,GAAG,aAAa;QAAE,OAAO;YAAC,SAAS;QAAU;qBACjD,0DAAC,CAAA,GAAA,kCAAO;QACN,QAAQ;YACN;gBACE,CAAA,GAAA,yCAAc;gBACd;oBACE,OAAO;wBACL,CAAC,CAAA,GAAA,sCAAW,EAAE,EAAE,CAAC;wBACjB,WAAW;oBACb;gBACF;aACD;YACD;gBACE,CAAA,GAAA,8CAAmB;gBACnB;oBACE,OAAO;wBACL,CAAC,CAAA,GAAA,sCAAW,EAAE,EAAE,CAAC;wBACjB,WAAW;oBACb;gBACF;aACD;YACD;gBACE,CAAA,GAAA,uCAAY;gBACZ;oBACE,OAAO;wBACL,CAAC,CAAA,GAAA,sCAAW,EAAE,EAAE;wBAChB,MAAM;4BACJ,GAAG,eAAe,eAAe;4BACjC,KAAK;4BACL,OAAO;gCACL,eAAe;4BACjB;wBACF;oBACF;gBACF;aACD;YACD;gBACE,CAAA,GAAA,qCAAU;gBACV;oBACE,OAAO;wBACL,CAAC,CAAA,GAAA,sCAAW,EAAE,EAAE,CAAC;wBACjB,aAAa;oBACf;gBACF;aACD;YACD;gBAAC,CAAA,GAAA,mDAAwB;gBAAG,CAAA,GAAA,mDAAwB;aAAE;YACtD;gBAAC,CAAA,GAAA,0CAAe;gBAAG;aAAK;YACxB;gBAAC,CAAA,GAAA,qDAA0B;gBAAG;aAAK;YACnC;gBAAC,CAAA,GAAA,2CAAgB;gBAAG;aAAK;YACzB;gBAAC,CAAA,GAAA,mDAAwB;gBAAG;oBAAC,YAAY,OAAO,UAAU;gBAAA;aAAE;SAC7D;OACA,YAAY,QAAQ;AAMjC;AAEA,SAAS,mDAA6B,KAAyB,EAAE,GAA8B;IAC7F,MAAM,CAAA,GAAA,yCAAW,EAAE;IACnB,IAAI,oBAAC,gBAAgB,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,4CAAiB;IAChE,IAAI,YAAY,CAAA,GAAA,mBAAK,EAAkB;IACvC,IAAI,sBAAC,kBAAkB,YAAE,QAAQ,gBAAE,YAAY,EAAC,GAAG,iBAAkB,gBAAgB,CACnF,OACA,WACA;IAGF,IAAI,UACF,OAAO;IAGT,qBACE,0DAAC;QACE,GAAG,KAAK;QACT,oBAAoB;QACpB,cAAc;QACd,WAAW;QACX,KAAK;;AAGX;AAQA,SAAS,4CAAsB,KAAiC,EAAE,GAA8B;IAC9F,IAAI,sBAAC,kBAAkB,gBAAE,YAAY,aAAE,SAAS,EAAE,GAAG,YAAW,GAAG;IAEnE,IAAI,uBAAC,mBAAmB,EAAC,GAAG,CAAA,GAAA,gDAAgB;IAC5C,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,UAAU;QACb,kBAAkB;QAClB,QAAQ;0BACN;QACF;IACF;IAEA,qBACE,0DAAC,CAAA,GAAA,6BAAE,EAAE,GAAG;QACL,GAAG,WAAW;QACf,MAAK;QACL,KAAK;QACL,oBAAkB,gBAAgB;qBAClC,0DAAC;QAAI,MAAK;qBACR,0DAAC;QAAK,GAAG,mBAAmB;QAAE,MAAK;QAAU,GAAG,kBAAkB;QAAE,KAAK;QACxE,YAAY,QAAQ;AAI7B;AAEA,MAAM,sEAAkC,CAAA,GAAA,uBAAS,EAAE;AAEnD,SAAS;IACP,IAAI,oBAAC,gBAAgB,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,4CAAiB;IAChE,IAAI,MAAM,CAAA,GAAA,mBAAK,EAAkB;IACjC,IAAI,sBAAC,kBAAkB,EAAC,GAAG,iBAAkB,gBAAgB,CAC3D;QACE,QAAQ;YAAC,MAAM;QAAM;IACvB,GACA,WACA;IAEF,IAAI,eAAe,UAAW,YAAY,CAAC;QAAC,MAAM;IAAM;IACxD,IAAI,uBAAC,mBAAmB,EAAC,GAAG,CAAA,GAAA,gDAAgB;IAE5C,IAAI,CAAC,gBAAgB,kBAAkB,CAAC,cAAc,EACpD,OAAO;IAGT,qBACE,0DAAC;QAAI,MAAK;QAAM,eAAa,kBAAkB,CAAC,cAAc;QAAE,OAAO;YAAC,UAAU;QAAU;qBAC1F,0DAAC;QAAI,MAAK;qBACR,0DAAC;QAAI,MAAK;QAAU,GAAG,mBAAmB;QAAG,GAAG,kBAAkB;QAAE,KAAK;;AAIjF;AAyBO,MAAM,4CAAuB,CAAA,GAAA,qDAAkB,EACpD,CAAA,GAAA,2DAAS,GACT,SAAS,yBACP,KAAgC,EAChC,GAAiC,EACjC,IAAkB;IAElB,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,0CAAe;IACtC,IAAI,iBAAC,aAAa,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,mDAAwB;IACzD,IAAI,aAAC,SAAS,cAAE,UAAU,gBAAE,YAAY,EAAE,GAAG,YAAW,GAAG;IAE3D,IAAI,cAAc,CAAA,GAAA,mBAAK,EAAE;IACzB,IAAI,sBAAsB,CAAA,GAAA,oBAAM,EAC9B,IAAO,CAAA;wBACL;YACA,YAAY,OAAO;yBACnB;0BACA;QACF,CAAA,GACA;QAAC;QAAY;QAAc,OAAO;KAAW;IAE/C,CAAA,GAAA,mEAAkB,EAAE,qBAAqB;IAEzC,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,UAAU;QACb,IAAI;QACJ,UAAU,KAAK,QAAQ;QACvB,kBAAkB;QAClB,QAAQ;IACV;IACA,sGAAsG;IACtG,qHAAqH;IACrH,aAAa;IAEb,qBACE,oIAGE,0DAAC;QAAI,OAAO;YAAC,UAAU;YAAY,OAAO;YAAG,QAAQ;QAAC;QAAG,OAAO,CAAA,GAAA,iDAAS,EAAE;qBACzE,0DAAC;QACC,eAAY;QACZ,KAAK;QACL,OAAO;YAAC,UAAU;YAAY,QAAQ;YAAG,OAAO;QAAC;SAGpD,aAAa,YAAY,QAAQ,kBAChC,0DAAC,CAAA,GAAA,6BAAE,EAAE,GAAG;QAAE,GAAG,WAAW;QAAG,GAAG,CAAA,GAAA,6CAAa,EAAE,OAAO;YAAC,QAAQ;QAAI,EAAE;QAAE,MAAK;QAAM,KAAK;qBACnF,0DAAC;QAAI,iBAAe,gBAAgB,IAAI;QAAW,MAAK;OACrD,YAAY,QAAQ;AAMjC;AAgBK,MAAM,4CAAkB,WAAW,GAAG,CAAA,GAAA,uDAAoB,EAC/D,CAAA,GAAA,4DAAU,GACV,CACE,OACA,KACA;IAEA,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,0CAAe;IACtC,IAAI,oBAAC,gBAAgB,EAAC,GAAG,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,mDAAwB;IAC5D,IAAI,aAAa,CAAA,GAAA,mBAAK,EAAE;IACxB,MAAM,CAAA,GAAA,yCAAW,EAAkB;IACnC,IAAI,kBAAC,cAAc,YAAE,QAAQ,iBAAE,aAAa,EAAC,GAAG,CAAA,GAAA,8CAAiB,EAC/D;QACE,cAAc,KAAK,CAAC,aAAa,IAAI;IACvC,GACA,OACA;IAEF,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,IAAI;QACJ,UAAU;QACV,kBAAkB;QAClB,QAAQ;IACV;IAEA,IAAI,WAAW,CAAA,GAAA,6CAAa,EAAE,OAAc;QAAC,QAAQ;IAAI;IACzD,OAAO,SAAS,EAAE;IAElB,qBACE,0DAAC,CAAA,GAAA,6BAAE,EAAE,GAAG;QAAE,GAAG,CAAA,GAAA,qCAAS,EAAE,UAAU,aAAa,cAAc;QAAE,KAAK;qBAClE,0DAAC,CAAA,GAAA,kCAAO;QACN,QAAQ;YACN;gBAAC;gBAAuB;oBAAC,GAAG,QAAQ;oBAAE,KAAK;gBAAU;aAAE;YACvD;gBAAC;gBAA4B;oBAAC,GAAG,cAAc;gBAAA;aAAE;SAClD;qBACD,0DAAC;QAAiB,YAAY,MAAM,UAAU;QAAE,QAAQ;;AAIhE;AAMK,MAAM,0DAAwB,CAAA,GAAA,0BAAY,EAE/C,CAAC;AACI,MAAM,0DAA6B,CAAA,GAAA,0BAAY,EAAsC;AAErF,MAAM,4CAAiB,WAAW,GAAG,CAAA,GAAA,qDAAkB,EAC5D,CAAA,GAAA,2DAAS,GACT,SAAS,OAAO,KAA0B,EAAE,GAAiC;IAC3E,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,iBAAiB,CAAA,GAAA,uBAAS,EAAE;IAEhC,qBACE,0DAAC,CAAA,GAAA,6BAAE,EAAE,GAAG;QAAC,QAAQ,MAAM,MAAM;QAAE,WAAU;QAA4B,KAAK;QAAM,GAAG,KAAK;qBACtF,0DAAC;QAAK,GAAG,cAAc;QAAE,OAAO;YAAC,SAAS;QAAU;OACjD,MAAM,QAAQ;AAIvB","sources":["packages/react-aria-components/src/GridList.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {\n  AriaGridListProps,\n  useGridList,\n  useGridListItem,\n  useGridListSection,\n  useGridListSelectionCheckbox\n} from 'react-aria/useGridList';\n\nimport {ButtonContext} from './Button';\nimport {CheckboxContext, CheckboxFieldContext} from './Checkbox';\nimport {\n  ClassNameOrFunction,\n  ContextValue,\n  DEFAULT_SLOT,\n  dom,\n  DOMProps,\n  DOMRenderProps,\n  Provider,\n  RenderProps,\n  SlotProps,\n  StyleProps,\n  StyleRenderProps,\n  useContextProps,\n  useRenderProps\n} from './utils';\nimport {Collection} from 'react-aria/Collection';\nimport {\n  CollectionBuilder,\n  createBranchComponent,\n  createLeafComponent\n} from 'react-aria/CollectionBuilder';\nimport {\n  CollectionProps,\n  CollectionRendererContext,\n  DefaultCollectionRenderer,\n  ItemRenderProps,\n  SectionProps\n} from './Collection';\nimport {\n  DragAndDropContext,\n  DropIndicatorContext,\n  DropIndicatorProps,\n  useDndPersistedKeys,\n  useRenderDropIndicator\n} from './DragAndDrop';\nimport {DragAndDropHooks} from './useDragAndDrop';\nimport {DraggableCollectionState} from 'react-stately/useDraggableCollectionState';\nimport {DraggableItemResult} from 'react-aria/useDraggableCollection';\nimport {DragPreviewRenderer} from '@react-types/shared';\nimport {DropIndicatorAria, DroppableCollectionResult} from 'react-aria/useDroppableCollection';\nimport {DroppableCollectionState} from 'react-stately/useDroppableCollectionState';\nimport {\n  FieldInputContext,\n  SelectableCollectionContext,\n  SelectableCollectionContextValue\n} from './Autocomplete';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FocusScope} from 'react-aria/FocusScope';\nimport {\n  forwardRefType,\n  GlobalDOMAttributes,\n  HoverEvents,\n  Key,\n  LinkDOMProps,\n  Orientation,\n  PressEvents,\n  RefObject\n} from '@react-types/shared';\nimport {\n  HeaderNode,\n  ItemNode,\n  LoaderNode,\n  SectionNode\n} from 'react-aria/private/collections/BaseCollection';\nimport {Collection as ICollection, Node, SelectionBehavior} from '@react-types/shared';\nimport {inertValue} from 'react-aria/private/utils/inertValue';\nimport {ListKeyboardDelegate} from 'react-aria/ListKeyboardDelegate';\nimport {ListState, UNSTABLE_useFilteredListState, useListState} from 'react-stately/useListState';\nimport {ListStateContext} from './ListBox';\nimport {\n  LoadMoreSentinelProps,\n  useLoadMoreSentinel\n} from 'react-aria/private/utils/useLoadMoreSentinel';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport React, {\n  createContext,\n  ForwardedRef,\n  forwardRef,\n  HTMLAttributes,\n  JSX,\n  ReactNode,\n  useContext,\n  useEffect,\n  useMemo,\n  useRef\n} from 'react';\nimport {SelectionIndicatorContext} from './SelectionIndicator';\nimport {SharedElementTransition} from './SharedElementTransition';\nimport {TextContext} from './Text';\nimport {useCollator} from 'react-aria/useCollator';\nimport {useFocusRing} from 'react-aria/useFocusRing';\nimport {useHover} from 'react-aria/useHover';\nimport {useLocale} from 'react-aria/I18nProvider';\nimport {useObjectRef} from 'react-aria/useObjectRef';\nimport {useVisuallyHidden} from 'react-aria/VisuallyHidden';\n\nexport interface GridListRenderProps {\n  /**\n   * Whether the list has no items and should display its empty state.\n   *\n   * @selector [data-empty]\n   */\n  isEmpty: boolean;\n  /**\n   * Whether the grid list is currently focused.\n   *\n   * @selector [data-focused]\n   */\n  isFocused: boolean;\n  /**\n   * Whether the grid list is currently keyboard focused.\n   *\n   * @selector [data-focus-visible]\n   */\n  isFocusVisible: boolean;\n  /**\n   * Whether the grid list is currently the active drop target.\n   *\n   * @selector [data-drop-target]\n   */\n  isDropTarget: boolean;\n  /**\n   * Whether the items are arranged in a stack or grid.\n   *\n   * @selector [data-layout=\"stack | grid\"]\n   */\n  layout: 'stack' | 'grid';\n  /**\n   * The primary orientation of the items.\n   *\n   * @selector [data-orientation=\"vertical | horizontal\"]\n   */\n  orientation: Orientation;\n  /**\n   * State of the grid list.\n   */\n  state: ListState<unknown>;\n}\n\nexport interface GridListProps<T>\n  extends\n    Omit<AriaGridListProps<T>, 'children'>,\n    CollectionProps<T>,\n    StyleRenderProps<GridListRenderProps>,\n    SlotProps,\n    GlobalDOMAttributes<HTMLDivElement> {\n  /**\n   * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n   * element. A function may be provided to compute the class based on component state.\n   *\n   * @default 'react-aria-GridList'\n   */\n  className?: ClassNameOrFunction<GridListRenderProps>;\n  /**\n   * Whether typeahead navigation is disabled.\n   *\n   * @default false\n   */\n  disallowTypeAhead?: boolean;\n  /**\n   * How multiple selection should behave in the collection.\n   *\n   * @default 'toggle'\n   */\n  selectionBehavior?: SelectionBehavior;\n  /**\n   * The drag and drop hooks returned by `useDragAndDrop` used to enable drag and drop behavior for\n   * the GridList.\n   */\n  dragAndDropHooks?: DragAndDropHooks<NoInfer<T>>;\n  /** Provides content to display when there are no items in the list. */\n  renderEmptyState?: (props: GridListRenderProps) => ReactNode;\n  /**\n   * Whether the items are arranged in a stack or grid.\n   *\n   * @default 'stack'\n   */\n  layout?: 'stack' | 'grid';\n  /**\n   * The primary orientation of the items. Usually this is the direction that the collection\n   * scrolls.\n   *\n   * @default 'vertical'\n   */\n  orientation?: Orientation;\n  /**\n   * Which item in the collection to focus when tabbing into the collection. Overrides default\n   * roving tab index like behavior.\n   *\n   * @private\n   */\n  UNSTABLE_focusOnEntry?: 'first' | 'last';\n}\n\nexport const GridListContext =\n  createContext<ContextValue<GridListProps<any>, HTMLDivElement>>(null);\n\n/**\n * A grid list displays a list of interactive items, with support for keyboard navigation,\n * single or multiple selection, and row actions.\n */\nexport const GridList = /*#__PURE__*/ (forwardRef as forwardRefType)(function GridList<T>(\n  props: GridListProps<T>,\n  ref: ForwardedRef<HTMLDivElement>\n) {\n  // Render the portal first so that we have the collection by the time we render the DOM in SSR.\n  [props, ref] = useContextProps(props, ref, GridListContext);\n\n  return (\n    <CollectionBuilder content={<Collection {...props} />}>\n      {collection => <GridListInner props={props} collection={collection} gridListRef={ref} />}\n    </CollectionBuilder>\n  );\n});\n\ninterface GridListInnerProps<T> {\n  props: GridListProps<T> & SelectableCollectionContextValue<T>;\n  collection: ICollection<Node<any>>;\n  gridListRef: RefObject<HTMLElement | null>;\n}\n\nfunction GridListInner<T>({props, collection, gridListRef: ref}: GridListInnerProps<T>) {\n  [props, ref] = useContextProps(props, ref, SelectableCollectionContext);\n  let {\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    shouldUseVirtualFocus,\n    filter,\n    disallowTypeAhead,\n    UNSTABLE_focusOnEntry,\n    ...DOMCollectionProps\n  } = props;\n  let {\n    dragAndDropHooks,\n    keyboardNavigationBehavior = 'arrow',\n    layout = 'stack',\n    orientation = 'vertical'\n  } = props;\n  let {\n    CollectionRoot,\n    isVirtualized,\n    layoutDelegate,\n    dropTargetDelegate: ctxDropTargetDelegate\n  } = useContext(CollectionRendererContext);\n  let gridlistState = useListState({\n    ...DOMCollectionProps,\n    collection,\n    children: undefined,\n    layoutDelegate\n  });\n\n  let filteredState = UNSTABLE_useFilteredListState(gridlistState as ListState<T>, filter);\n  let collator = useCollator({usage: 'search', sensitivity: 'base'});\n  let {disabledBehavior, disabledKeys} = filteredState.selectionManager;\n  let {direction} = useLocale();\n  let keyboardDelegate = useMemo(\n    () =>\n      new ListKeyboardDelegate({\n        collection: filteredState.collection,\n        collator,\n        ref,\n        disabledKeys,\n        disabledBehavior,\n        layoutDelegate,\n        layout,\n        orientation,\n        direction\n      }),\n    [\n      filteredState.collection,\n      ref,\n      layout,\n      orientation,\n      disabledKeys,\n      disabledBehavior,\n      layoutDelegate,\n      collator,\n      direction\n    ]\n  );\n\n  let {gridProps} = useGridList(\n    {\n      ...DOMCollectionProps,\n      keyboardDelegate,\n      // Only tab navigation is supported in grid layout.\n      keyboardNavigationBehavior: layout === 'grid' ? 'tab' : keyboardNavigationBehavior,\n      isVirtualized,\n      shouldSelectOnPressUp: props.shouldSelectOnPressUp,\n      disallowTypeAhead,\n      UNSTABLE_focusOnEntry\n    },\n    filteredState,\n    ref\n  );\n\n  let selectionManager = filteredState.selectionManager;\n  let isListDraggable = !!dragAndDropHooks?.useDraggableCollectionState;\n  let isListDroppable = !!dragAndDropHooks?.useDroppableCollectionState;\n  let dragHooksProvided = useRef(isListDraggable);\n  let dropHooksProvided = useRef(isListDroppable);\n  useEffect(() => {\n    if (process.env.NODE_ENV === 'production') {\n      return;\n    }\n    if (dragHooksProvided.current !== isListDraggable) {\n      console.warn(\n        'Drag hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.'\n      );\n    }\n    if (dropHooksProvided.current !== isListDroppable) {\n      console.warn(\n        'Drop hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.'\n      );\n    }\n  }, [isListDraggable, isListDroppable]);\n\n  let dragState: DraggableCollectionState | undefined = undefined;\n  let dropState: DroppableCollectionState | undefined = undefined;\n  let droppableCollection: DroppableCollectionResult | undefined = undefined;\n  let isRootDropTarget = false;\n  let dragPreview: JSX.Element | null = null;\n  let preview = useRef<DragPreviewRenderer>(null);\n\n  if (isListDraggable && dragAndDropHooks) {\n    dragState = dragAndDropHooks.useDraggableCollectionState!({\n      collection: filteredState.collection,\n      selectionManager,\n      preview: dragAndDropHooks.renderDragPreview ? preview : undefined\n    });\n    dragAndDropHooks.useDraggableCollection!({}, dragState, ref);\n\n    let DragPreview = dragAndDropHooks.DragPreview!;\n    dragPreview = dragAndDropHooks.renderDragPreview ? (\n      <DragPreview ref={preview}>{dragAndDropHooks.renderDragPreview}</DragPreview>\n    ) : null;\n  }\n\n  if (isListDroppable && dragAndDropHooks) {\n    dropState = dragAndDropHooks.useDroppableCollectionState!({\n      collection: filteredState.collection,\n      selectionManager\n    });\n\n    let dropTargetDelegate =\n      dragAndDropHooks.dropTargetDelegate ||\n      ctxDropTargetDelegate ||\n      new dragAndDropHooks.ListDropTargetDelegate(collection, ref, {\n        layout,\n        direction,\n        orientation\n      });\n    droppableCollection = dragAndDropHooks.useDroppableCollection!(\n      {\n        keyboardDelegate,\n        dropTargetDelegate\n      },\n      dropState,\n      ref\n    );\n\n    isRootDropTarget = dropState.isDropTarget({type: 'root'});\n  }\n\n  let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n  let isEmpty = filteredState.collection.size === 0;\n  let renderValues = {\n    isDropTarget: isRootDropTarget,\n    orientation,\n    isEmpty,\n    isFocused,\n    isFocusVisible,\n    layout,\n    state: filteredState\n  };\n  let renderProps = useRenderProps({\n    ...props,\n    children: undefined,\n    defaultClassName: 'react-aria-GridList',\n    values: renderValues\n  });\n\n  let emptyState: ReactNode = null;\n  let emptyStatePropOverrides: HTMLAttributes<HTMLElement> | null = null;\n\n  if (isEmpty && props.renderEmptyState) {\n    let content = props.renderEmptyState(renderValues);\n    emptyState = (\n      <div role=\"row\" aria-rowindex={1} style={{display: 'contents'}}>\n        <div role=\"gridcell\" style={{display: 'contents'}}>\n          {content}\n        </div>\n      </div>\n    );\n  }\n\n  let DOMProps = filterDOMProps(props, {global: true});\n\n  return (\n    <FocusScope>\n      <dom.div\n        {...mergeProps(\n          DOMProps,\n          renderProps,\n          gridProps,\n          focusProps,\n          droppableCollection?.collectionProps,\n          emptyStatePropOverrides\n        )}\n        ref={ref as RefObject<HTMLDivElement>}\n        slot={props.slot || undefined}\n        onScroll={props.onScroll}\n        data-drop-target={isRootDropTarget || undefined}\n        data-empty={isEmpty || undefined}\n        data-focused={isFocused || undefined}\n        data-focus-visible={isFocusVisible || undefined}\n        data-layout={layout}\n        data-orientation={orientation}>\n        <Provider\n          values={[\n            [ListStateContext, filteredState],\n            [DragAndDropContext, {dragAndDropHooks, dragState, dropState}],\n            [DropIndicatorContext, {render: GridListDropIndicatorWrapper}]\n          ]}>\n          {isListDroppable && <RootDropIndicator />}\n          <SharedElementTransition>\n            <CollectionRoot\n              collection={filteredState.collection}\n              scrollRef={ref}\n              persistedKeys={useDndPersistedKeys(selectionManager, dragAndDropHooks, dropState)}\n              renderDropIndicator={useRenderDropIndicator(dragAndDropHooks, dropState)}\n            />\n          </SharedElementTransition>\n        </Provider>\n        {emptyState}\n        {dragPreview}\n      </dom.div>\n    </FocusScope>\n  );\n}\n\nexport interface GridListItemRenderProps extends ItemRenderProps {\n  /** The unique id of the item. */\n  id?: Key;\n  /**\n   * Whether the item's children have keyboard focus.\n   *\n   * @selector [data-focus-visible-within]\n   */\n  isFocusVisibleWithin: boolean;\n  /**\n   * State of the grid list.\n   */\n  state: ListState<unknown>;\n}\n\nexport interface GridListItemProps<T = object>\n  extends\n    RenderProps<GridListItemRenderProps>,\n    LinkDOMProps,\n    HoverEvents,\n    PressEvents,\n    Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {\n  /**\n   * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n   * element. A function may be provided to compute the class based on component state.\n   *\n   * @default 'react-aria-GridListItem'\n   */\n  className?: ClassNameOrFunction<GridListItemRenderProps>;\n  /** The unique id of the item. */\n  id?: Key;\n  /**\n   * The object value that this item represents. When using dynamic collections, this is set\n   * automatically.\n   */\n  value?: T;\n  /** A string representation of the item's contents, used for features like typeahead. */\n  textValue?: string;\n  /** Whether the item is disabled. */\n  isDisabled?: boolean;\n  /**\n   * Handler that is called when a user performs an action on the item. The exact user event depends\n   * on the collection's `selectionBehavior` prop and the interaction modality.\n   */\n  onAction?: () => void;\n}\n\n/**\n * A GridListItem represents an individual item in a GridList.\n */\nexport const GridListItem = /*#__PURE__*/ createLeafComponent(ItemNode, function GridListItem<\n  T\n>(props: GridListItemProps<T>, forwardedRef: ForwardedRef<HTMLDivElement>, item: Node<T>) {\n  let state = useContext(ListStateContext)!;\n  let {dragAndDropHooks, dragState, dropState} = useContext(DragAndDropContext);\n  let ref = useObjectRef<HTMLDivElement>(forwardedRef);\n  let {isVirtualized} = useContext(CollectionRendererContext);\n  let isDraggable =\n    dragState && !(dragState.isDisabled || dragState.selectionManager.isDisabled(item.key));\n  let {rowProps, gridCellProps, descriptionProps, ...states} = useGridListItem(\n    {\n      node: item,\n      shouldSelectOnPressUp: !!dragState,\n      isVirtualized\n    },\n    state,\n    ref\n  );\n\n  let {hoverProps, isHovered} = useHover({\n    // because of https://bugs.webkit.org/show_bug.cgi?id=214609, supporting hover styles when a item is ONLY isDraggable\n    // results in hover styles sticking around after a reorder/drop operation...\n    isDisabled: !states.allowsSelection && !states.hasAction && !isDraggable,\n    onHoverStart: item.props.onHoverStart,\n    onHoverChange: item.props.onHoverChange,\n    onHoverEnd: item.props.onHoverEnd\n  });\n\n  let {isFocusVisible, focusProps} = useFocusRing();\n  let {isFocusVisible: isFocusVisibleWithin, focusProps: focusWithinProps} = useFocusRing({\n    within: true\n  });\n  let {checkboxProps} = useGridListSelectionCheckbox({key: item.key}, state);\n\n  let buttonProps =\n    state.selectionManager.disabledBehavior === 'all' && states.isDisabled\n      ? {isDisabled: true}\n      : {};\n\n  let draggableItem: DraggableItemResult | null = null;\n  if (dragState && dragAndDropHooks) {\n    draggableItem = dragAndDropHooks.useDraggableItem!(\n      {key: item.key, hasDragButton: true},\n      dragState\n    );\n  }\n\n  let dropIndicator: DropIndicatorAria | null = null;\n  let dropIndicatorRef = useRef<HTMLDivElement>(null);\n  let {visuallyHiddenProps} = useVisuallyHidden();\n  if (dropState && dragAndDropHooks) {\n    dropIndicator = dragAndDropHooks.useDropIndicator!(\n      {\n        target: {type: 'item', key: item.key, dropPosition: 'on'}\n      },\n      dropState,\n      dropIndicatorRef\n    );\n  }\n\n  let isDragging = dragState && dragState.isDragging(item.key);\n  let renderProps = useRenderProps({\n    ...props,\n    id: undefined,\n    children: item.rendered,\n    defaultClassName: 'react-aria-GridListItem',\n    values: {\n      ...states,\n      isHovered,\n      isFocusVisible,\n      isFocusVisibleWithin,\n      selectionMode: state.selectionManager.selectionMode,\n      selectionBehavior: state.selectionManager.selectionBehavior,\n      allowsDragging: !!dragState,\n      isDragging,\n      isDropTarget: dropIndicator?.isDropTarget,\n      id: item.key,\n      state\n    }\n  });\n\n  let dragButtonRef = useRef<HTMLButtonElement>(null);\n  useEffect(() => {\n    if (dragState && !dragButtonRef.current) {\n      console.warn(\n        'Draggable items in a GridList must contain a <Button slot=\"drag\"> element so that keyboard and screen reader users can drag them.'\n      );\n    }\n    // eslint-disable-next-line\n  }, []);\n\n  useEffect(() => {\n    if (!item.textValue && process.env.NODE_ENV !== 'production') {\n      console.warn(\n        'A `textValue` prop is required for <GridListItem> elements with non-plain text children in order to support accessibility features such as type to select.'\n      );\n    }\n  }, [item.textValue]);\n\n  let DOMProps = filterDOMProps(props as any, {global: true});\n  delete DOMProps.id;\n  delete DOMProps.onClick;\n\n  return (\n    <>\n      {dropIndicator && !dropIndicator.isHidden && (\n        <div role=\"row\" style={{position: 'absolute'}}>\n          <div role=\"gridcell\">\n            <div\n              role=\"button\"\n              {...visuallyHiddenProps}\n              {...dropIndicator?.dropIndicatorProps}\n              ref={dropIndicatorRef}\n            />\n          </div>\n        </div>\n      )}\n      <dom.div\n        {...mergeProps(\n          DOMProps,\n          renderProps,\n          rowProps,\n          focusProps,\n          focusWithinProps,\n          hoverProps,\n          draggableItem?.dragProps\n        )}\n        ref={ref}\n        data-selected={states.isSelected || undefined}\n        data-disabled={states.isDisabled || undefined}\n        data-hovered={isHovered || undefined}\n        data-focused={states.isFocused || undefined}\n        data-focus-visible={isFocusVisible || undefined}\n        data-focus-visible-within={isFocusVisibleWithin || undefined}\n        data-pressed={states.isPressed || undefined}\n        data-allows-dragging={!!dragState || undefined}\n        data-dragging={isDragging || undefined}\n        data-drop-target={dropIndicator?.isDropTarget || undefined}\n        data-selection-mode={\n          state.selectionManager.selectionMode === 'none'\n            ? undefined\n            : state.selectionManager.selectionMode\n        }>\n        <div {...gridCellProps} style={{display: 'contents'}}>\n          <Provider\n            values={[\n              [\n                CheckboxContext,\n                {\n                  slots: {\n                    [DEFAULT_SLOT]: {},\n                    selection: checkboxProps\n                  }\n                }\n              ],\n              [\n                CheckboxFieldContext,\n                {\n                  slots: {\n                    [DEFAULT_SLOT]: {},\n                    selection: checkboxProps\n                  }\n                }\n              ],\n              [\n                ButtonContext,\n                {\n                  slots: {\n                    [DEFAULT_SLOT]: buttonProps,\n                    drag: {\n                      ...draggableItem?.dragButtonProps,\n                      ref: dragButtonRef,\n                      style: {\n                        pointerEvents: 'none'\n                      }\n                    }\n                  }\n                }\n              ],\n              [\n                TextContext,\n                {\n                  slots: {\n                    [DEFAULT_SLOT]: {},\n                    description: descriptionProps\n                  }\n                }\n              ],\n              [CollectionRendererContext, DefaultCollectionRenderer],\n              [ListStateContext, null],\n              [SelectableCollectionContext, null],\n              [FieldInputContext, null],\n              [SelectionIndicatorContext, {isSelected: states.isSelected}]\n            ]}>\n            {renderProps.children}\n          </Provider>\n        </div>\n      </dom.div>\n    </>\n  );\n});\n\nfunction GridListDropIndicatorWrapper(props: DropIndicatorProps, ref: ForwardedRef<HTMLElement>) {\n  ref = useObjectRef(ref);\n  let {dragAndDropHooks, dropState} = useContext(DragAndDropContext);\n  let buttonRef = useRef<HTMLDivElement>(null);\n  let {dropIndicatorProps, isHidden, isDropTarget} = dragAndDropHooks!.useDropIndicator!(\n    props,\n    dropState!,\n    buttonRef\n  );\n\n  if (isHidden) {\n    return null;\n  }\n\n  return (\n    <GridListDropIndicatorForwardRef\n      {...props}\n      dropIndicatorProps={dropIndicatorProps}\n      isDropTarget={isDropTarget}\n      buttonRef={buttonRef}\n      ref={ref}\n    />\n  );\n}\n\ninterface GridListDropIndicatorProps extends DropIndicatorProps {\n  dropIndicatorProps: React.HTMLAttributes<HTMLElement>;\n  isDropTarget: boolean;\n  buttonRef: RefObject<HTMLDivElement | null>;\n}\n\nfunction GridListDropIndicator(props: GridListDropIndicatorProps, ref: ForwardedRef<HTMLElement>) {\n  let {dropIndicatorProps, isDropTarget, buttonRef, ...otherProps} = props;\n\n  let {visuallyHiddenProps} = useVisuallyHidden();\n  let renderProps = useRenderProps({\n    ...otherProps,\n    defaultClassName: 'react-aria-DropIndicator',\n    values: {\n      isDropTarget\n    }\n  });\n\n  return (\n    <dom.div\n      {...renderProps}\n      role=\"row\"\n      ref={ref as RefObject<HTMLDivElement | null>}\n      data-drop-target={isDropTarget || undefined}>\n      <div role=\"gridcell\">\n        <div {...visuallyHiddenProps} role=\"button\" {...dropIndicatorProps} ref={buttonRef} />\n        {renderProps.children}\n      </div>\n    </dom.div>\n  );\n}\n\nconst GridListDropIndicatorForwardRef = forwardRef(GridListDropIndicator);\n\nfunction RootDropIndicator() {\n  let {dragAndDropHooks, dropState} = useContext(DragAndDropContext);\n  let ref = useRef<HTMLDivElement>(null);\n  let {dropIndicatorProps} = dragAndDropHooks!.useDropIndicator!(\n    {\n      target: {type: 'root'}\n    },\n    dropState!,\n    ref\n  );\n  let isDropTarget = dropState!.isDropTarget({type: 'root'});\n  let {visuallyHiddenProps} = useVisuallyHidden();\n\n  if (!isDropTarget && dropIndicatorProps['aria-hidden']) {\n    return null;\n  }\n\n  return (\n    <div role=\"row\" aria-hidden={dropIndicatorProps['aria-hidden']} style={{position: 'absolute'}}>\n      <div role=\"gridcell\">\n        <div role=\"button\" {...visuallyHiddenProps} {...dropIndicatorProps} ref={ref} />\n      </div>\n    </div>\n  );\n}\n\nexport interface GridListLoadMoreItemProps\n  extends\n    Omit<LoadMoreSentinelProps, 'collection'>,\n    StyleProps,\n    DOMRenderProps<'div', undefined>,\n    GlobalDOMAttributes<HTMLDivElement> {\n  /**\n   * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n   * element.\n   *\n   * @default 'react-aria-GridListLoadMoreItem'\n   */\n  className?: string;\n  /**\n   * The load more spinner to render when loading additional items.\n   */\n  children?: ReactNode;\n  /**\n   * Whether or not the loading spinner should be rendered or not.\n   */\n  isLoading?: boolean;\n}\n\nexport const GridListLoadMoreItem = createLeafComponent(\n  LoaderNode,\n  function GridListLoadingIndicator(\n    props: GridListLoadMoreItemProps,\n    ref: ForwardedRef<HTMLDivElement>,\n    item: Node<object>\n  ) {\n    let state = useContext(ListStateContext)!;\n    let {isVirtualized} = useContext(CollectionRendererContext);\n    let {isLoading, onLoadMore, scrollOffset, ...otherProps} = props;\n\n    let sentinelRef = useRef(null);\n    let memoedLoadMoreProps = useMemo(\n      () => ({\n        onLoadMore,\n        collection: state?.collection,\n        sentinelRef,\n        scrollOffset\n      }),\n      [onLoadMore, scrollOffset, state?.collection]\n    );\n    useLoadMoreSentinel(memoedLoadMoreProps, sentinelRef);\n\n    let renderProps = useRenderProps({\n      ...otherProps,\n      id: undefined,\n      children: item.rendered,\n      defaultClassName: 'react-aria-GridListLoadingIndicator',\n      values: undefined\n    });\n    // For now don't include aria-posinset and aria-setsize on loader since they aren't keyboard focusable\n    // Arguably shouldn't include them ever since it might be confusing to the user to include the loaders as part of the\n    // item count\n\n    return (\n      <>\n        {/* Alway render the sentinel. For now onus is on the user for styling when using flex + gap (this would introduce a gap even though it doesn't take room) */}\n        {/* @ts-ignore - compatibility with React < 19 */}\n        <div style={{position: 'relative', width: 0, height: 0}} inert={inertValue(true)}>\n          <div\n            data-testid=\"loadMoreSentinel\"\n            ref={sentinelRef}\n            style={{position: 'absolute', height: 1, width: 1}}\n          />\n        </div>\n        {isLoading && renderProps.children && (\n          <dom.div {...renderProps} {...filterDOMProps(props, {global: true})} role=\"row\" ref={ref}>\n            <div aria-colindex={isVirtualized ? 1 : undefined} role=\"gridcell\">\n              {renderProps.children}\n            </div>\n          </dom.div>\n        )}\n      </>\n    );\n  }\n);\n\nexport interface GridListSectionProps<T> extends SectionProps<T>, DOMRenderProps<'div', undefined> {\n  /**\n   * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n   * element.\n   *\n   * @default 'react-aria-GridListSection'\n   */\n  className?: string;\n}\n\n/**\n * A GridListSection represents a section within a GridList.\n */\nexport const GridListSection = /*#__PURE__*/ createBranchComponent(\n  SectionNode,\n  <T extends any>(\n    props: GridListSectionProps<T>,\n    ref: ForwardedRef<HTMLDivElement>,\n    item: Node<T>\n  ) => {\n    let state = useContext(ListStateContext)!;\n    let {CollectionBranch} = useContext(CollectionRendererContext);\n    let headingRef = useRef(null);\n    ref = useObjectRef<HTMLDivElement>(ref);\n    let {rowHeaderProps, rowProps, rowGroupProps} = useGridListSection(\n      {\n        'aria-label': props['aria-label'] ?? undefined\n      },\n      state,\n      ref\n    );\n    let renderProps = useRenderProps({\n      ...props,\n      id: undefined,\n      children: undefined,\n      defaultClassName: 'react-aria-GridListSection',\n      values: undefined\n    });\n\n    let DOMProps = filterDOMProps(props as any, {global: true});\n    delete DOMProps.id;\n\n    return (\n      <dom.div {...mergeProps(DOMProps, renderProps, rowGroupProps)} ref={ref}>\n        <Provider\n          values={[\n            [GridListHeaderContext, {...rowProps, ref: headingRef}],\n            [GridListHeaderInnerContext, {...rowHeaderProps}]\n          ]}>\n          <CollectionBranch collection={state.collection} parent={item} />\n        </Provider>\n      </dom.div>\n    );\n  }\n);\n\nexport interface GridListHeaderProps\n  extends DOMRenderProps<'div', undefined>, DOMProps, GlobalDOMAttributes<HTMLElement> {}\n\nexport const GridListHeaderContext = createContext<\n  ContextValue<GridListHeaderProps, HTMLDivElement>\n>({});\nexport const GridListHeaderInnerContext = createContext<HTMLAttributes<HTMLElement> | null>(null);\n\nexport const GridListHeader = /*#__PURE__*/ createLeafComponent(\n  HeaderNode,\n  function Header(props: GridListHeaderProps, ref: ForwardedRef<HTMLDivElement>) {\n    [props, ref] = useContextProps(props, ref, GridListHeaderContext);\n    let rowHeaderProps = useContext(GridListHeaderInnerContext);\n\n    return (\n      <dom.div render={props.render} className=\"react-aria-GridListHeader\" ref={ref} {...props}>\n        <div {...rowHeaderProps} style={{display: 'contents'}}>\n          {props.children}\n        </div>\n      </dom.div>\n    );\n  }\n);\n"],"names":[],"version":3,"file":"GridList.cjs.map"}