@dnd-kit/dom 0.0.3 → 0.0.4-beta-20240621131401

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/utilities.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["src/utilities/bounding-rectangle/getBoundingRectangle.ts","src/utilities/execution-context/canUseDOM.ts","src/utilities/type-guards/isWindow.ts","src/utilities/type-guards/isNode.ts","src/utilities/execution-context/getWindow.ts","src/utilities/type-guards/isDocument.ts","src/utilities/type-guards/isHTMLElement.ts","src/utilities/execution-context/getDocument.ts","src/utilities/bounding-rectangle/getViewportBoundingRectangle.ts","src/utilities/element/cloneElement.ts","src/utilities/type-guards/supportsStyle.ts","src/utilities/element/createPlaceholder.ts","src/utilities/event-listeners/Listeners.ts","src/utilities/popover/supportsPopover.ts","src/utilities/popover/showPopover.ts","src/utilities/scroll/documentScrollingElement.ts","src/utilities/scroll/getScrollPosition.ts","src/utilities/scroll/canScroll.ts","src/utilities/type-guards/isSVGElement.ts","src/utilities/styles/getComputedStyles.ts","src/utilities/scroll/isFixed.ts","src/utilities/scroll/isScrollable.ts","src/utilities/scroll/getScrollableAncestors.ts","src/utilities/scroll/detectScrollIntent.ts","src/utilities/scroll/scrollIntoViewIfNeeded.ts","src/utilities/scheduling/scheduler.ts","src/utilities/scheduling/timeout.ts","src/utilities/shapes/DOMRectangle.ts","src/utilities/transform/inverseTransform.ts","src/utilities/styles/Styles.ts","src/utilities/transform/animateTransform.ts","src/utilities/keyframes/getFinalKeyframe.ts","src/utilities/transform/parseTranslate.ts","src/utilities/transform/computeTranslate.ts","src/utilities/transform/parseScale.ts","src/utilities/transform/parseTransform.ts","src/utilities/transform/stringifyTransform.ts","src/utilities/type-guards/isKeyboardEvent.ts","src/utilities/type-guards/supportsViewTransition.ts"],"names":["target","ScrollDirection","translate","document"],"mappings":";AAEO,SAAS,qBAAqB,SAAqC;AACxE,QAAM,EAAC,OAAO,QAAQ,KAAK,MAAM,QAAQ,MAAK,IAC5C,QAAQ,sBAAsB;AAEhC,SAAO,EAAC,OAAO,QAAQ,KAAK,MAAM,QAAQ,MAAK;AACjD;;;ACNO,IAAM,YACX,OAAO,WAAW,eAClB,OAAO,OAAO,aAAa,eAC3B,OAAO,OAAO,SAAS,kBAAkB;;;ACJpC,SAAS,SAAS,SAA2C;AAClE,QAAM,gBAAgB,OAAO,UAAU,SAAS,KAAK,OAAO;AAC5D,SACE,kBAAkB;AAAA,EAElB,kBAAkB;AAEtB;;;ACPO,SAAS,OAAO,MAA4B;AACjD,SAAO,cAAc;AACvB;;;ACCO,SAAS,UAAU,QAAwC;AAChE,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,MAAM,GAAG;AACpB,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,OAAO,MAAM,GAAG;AACnB,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,eAAe,eAAe;AAC9C;;;ACfO,SAAS,WAAW,MAA8B;AACvD,QAAM,EAAC,SAAQ,IAAI,UAAU,IAAI;AAEjC,SAAO,gBAAgB;AACzB;;;ACFO,SAAS,cAAc,MAA0C;AACtE,MAAI,SAAS,IAAI,GAAG;AAClB,WAAO;AAAA,EACT;AAEA,SAAO,gBAAgB,UAAU,IAAI,EAAE;AACzC;;;ACLO,SAAS,YAAY,QAAmC;AAC7D,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,MAAI,SAAS,MAAM,GAAG;AACpB,WAAO,OAAO;AAAA,EAChB;AAEA,MAAI,CAAC,OAAO,MAAM,GAAG;AACnB,WAAO;AAAA,EACT;AAEA,MAAI,WAAW,MAAM,GAAG;AACtB,WAAO;AAAA,EACT;AAEA,MAAI,cAAc,MAAM,GAAG;AACzB,WAAO,OAAO;AAAA,EAChB;AAEA,SAAO;AACT;;;ACvBO,SAAS,6BACd,SACmB;AACnB,QAAM,EAAC,gBAAe,IAAI,YAAY,OAAO;AAC7C,QAAM,QAAQ,gBAAgB;AAC9B,QAAM,SAAS,gBAAgB;AAE/B,SAAO;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,EACF;AACF;;;ACnBO,SAAS,aAAa,SAA2B;AACtD,QAAM,WAAW;AACjB,QAAM,gBAAgB,QAAQ,UAAU,IAAI;AAC5C,QAAM,SAAS,MAAM,KAAK,QAAQ,iBAAiB,QAAQ,CAAC;AAC5D,QAAM,eAAe,MAAM,KAAK,cAAc,iBAAiB,QAAQ,CAAC;AAExE,eAAa,QAAQ,CAAC,OAAO,UAAU;AACrC,UAAM,gBAAgB,OAAO,KAAK;AAElC,QAAI,QAAQ,KAAK,KAAK,QAAQ,aAAa,GAAG;AAC5C,UAAI,MAAM,SAAS,QAAQ;AACzB,cAAM,QAAQ,cAAc;AAAA,MAC9B;AAIA,UAAI,MAAM,SAAS,WAAW,MAAM,MAAM;AACxC,cAAM,OAAO,WAAW,MAAM,IAAI;AAAA,MACpC;AAAA,IACF;AAEA,QACE,iBAAiB,qBACjB,yBAAyB,qBACzB,cAAc,QAAQ,KACtB,cAAc,SAAS,GACvB;AACA,YAAM,UAAU,MAAM,WAAW,IAAI;AACrC,eAAS,UAAU,eAAe,GAAG,CAAC;AAAA,IACxC;AAAA,EACF,CAAC;AAED,SAAO;AACT;AAEA,SAAS,QACP,SACuE;AACvE,SAAO,WAAW;AACpB;;;ACrCO,SAAS,cACd,SACmD;AACnD,SACE,WAAW,WACX,QAAQ,iBAAiB,UAAU,OAAO,EAAE;AAEhD;;;ACNO,SAAS,kBACd,SACA,QAAQ,OACR,YACS;AACT,QAAM,cAAc,aAAa,OAAO;AAExC,MAAI,cAAc,WAAW,GAAG;AAC9B,QAAI,CAAC,OAAO;AACV,kBAAY,MAAM,YAAY,WAAW,GAAG;AAAA,IAC9C;AAAA,EACF;AAEA,cAAY,aAAa,SAAS,MAAM;AACxC,cAAY,aAAa,aAAa,IAAI;AAC1C,cAAY,aAAa,eAAe,MAAM;AAE9C,MAAI,YAAY;AACd,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,UAAU,GAAG;AACrD,kBAAY,aAAa,KAAK,KAAK;AAAA,IACrC;AAAA,EACF;AAEA,SAAO;AACT;;;ACjBO,IAAM,YAAN,MAAgB;AAAA,EAGrB,cAAc;AAFd,SAAQ,UAAmC,oBAAI,IAAI;AAwBnD,SAAO,QAAQ,MAAM;AACnB,iBAAW,SAAS,KAAK,SAAS;AAChC,cAAM,CAAC,QAAQ,EAAC,MAAM,UAAU,QAAO,CAAC,IAAI;AAE5C,eAAO,oBAAoB,MAAM,UAAU,OAAO;AAAA,MACpD;AAEA,WAAK,QAAQ,MAAM;AAAA,IACrB;AAAA,EA9Be;AAAA,EAER,KAAK,QAAqB,OAA2B;AAC1D,UAAM,YAAY,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AACvD,UAAM,UAAgC,CAAC;AAEvC,eAAW,cAAc,WAAW;AAClC,YAAM,EAAC,MAAM,UAAU,QAAO,IAAI;AAClC,YAAM,QAA4B,CAAC,QAAQ,UAAU;AAErD,aAAO,iBAAiB,MAAM,UAAU,OAAO;AAC/C,WAAK,QAAQ,IAAI,KAAK;AACtB,cAAQ,KAAK,KAAK;AAAA,IACpB;AAEA,WAAO,SAAS,UAAU;AACxB,iBAAW,CAACA,SAAQ,EAAC,MAAM,UAAU,QAAO,CAAC,KAAK,SAAS;AACzD,QAAAA,QAAO,oBAAoB,MAAM,UAAU,OAAO;AAAA,MACpD;AAAA,IACF;AAAA,EACF;AAWF;;;AC5CO,SAAS,gBAAgB,SAG9B;AACA,SACE,iBAAiB,WACjB,iBAAiB,WACjB,OAAO,QAAQ,gBAAgB,cAC/B,OAAO,QAAQ,gBAAgB;AAEnC;;;ACRO,SAAS,YAAY,SAAkB;AAC5C,MACE,gBAAgB,OAAO,KACvB,QAAQ,eACR,QAAQ,aAAa,SAAS,GAC9B;AACA,YAAQ,YAAY;AAAA,EACtB;AACF;;;ACPO,SAAS,2BAA2B,SAAyB;AAClE,MAAI,CAAC,aAAa,CAAC,SAAS;AAC1B,WAAO;AAAA,EACT;AAEA,SAAO,YAAY,YAAY,OAAO,EAAE;AAC1C;;;ACLO,SAAS,kBAAkB,mBAA4B;AAC5D,QAAM,OAAO,2BAA2B,iBAAiB,IACrD,6BAA6B,iBAAiB,IAC9C,qBAAqB,iBAAiB;AAE1C,QAAM,aAAa,2BAA2B,iBAAiB,IAC3D;AAAA,IACE,QAAQ,OAAO;AAAA,IACf,OAAO,OAAO;AAAA,EAChB,IACA;AAAA,IACE,QAAQ,kBAAkB;AAAA,IAC1B,OAAO,kBAAkB;AAAA,EAC3B;AACJ,QAAM,WAAW;AAAA,IACf,SAAS;AAAA,MACP,GAAG,kBAAkB;AAAA,MACrB,GAAG,kBAAkB;AAAA,IACvB;AAAA,IACA,KAAK;AAAA,MACH,GAAG,kBAAkB,cAAc,WAAW;AAAA,MAC9C,GAAG,kBAAkB,eAAe,WAAW;AAAA,IACjD;AAAA,EACF;AAEA,QAAM,QAAQ,SAAS,QAAQ,KAAK;AACpC,QAAM,SAAS,SAAS,QAAQ,KAAK;AACrC,QAAM,WAAW,SAAS,QAAQ,KAAK,SAAS,IAAI;AACpD,QAAM,UAAU,SAAS,QAAQ,KAAK,SAAS,IAAI;AAEnD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;ACtCO,SAAS,UAAU,mBAA4B,IAAkB;AACtE,QAAM,EAAC,OAAO,UAAU,QAAQ,SAAS,SAAQ,IAC/C,kBAAkB,iBAAiB;AAErC,QAAM,EAAC,GAAG,EAAC,IAAI,MAAM,EAAC,GAAG,GAAG,GAAG,EAAC;AAEhC,QAAM,MAAM,CAAC,SAAS,SAAS,QAAQ,IAAI,IAAI;AAC/C,QAAM,SAAS,CAAC,YAAY,SAAS,QAAQ,IAAI,IAAI,SAAS,IAAI;AAClE,QAAM,OAAO,CAAC,UAAU,SAAS,QAAQ,IAAI,IAAI;AACjD,QAAM,QAAQ,CAAC,WAAW,SAAS,QAAQ,IAAI,IAAI,SAAS,IAAI;AAEhE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG,QAAQ;AAAA,IACX,GAAG,OAAO;AAAA,EACZ;AACF;;;ACrBO,SAAS,aAAa,MAAgC;AAC3D,SAAO,gBAAgB,UAAU,IAAI,EAAE;AACzC;;;ACFO,SAAS,kBAAkB,SAAkB;AAClD,SAAO,UAAU,OAAO,EAAE,iBAAiB,OAAO;AACpD;;;ACFO,SAAS,QACd,MACA,gBAAqC,kBAAkB,IAAI,GAClD;AACT,SACE,cAAc,aAAa,WAAW,cAAc,aAAa;AAErE;;;ACPO,SAAS,aACd,SACA,gBAAqC,kBAAkB,OAAO,GACrD;AACT,QAAM,gBAAgB;AACtB,QAAM,aAAa,CAAC,YAAY,aAAa,WAAW;AAExD,SACE,WAAW,KAAK,CAAC,aAAa;AAC5B,UAAM,QAAQ,cAAc,QAAqC;AAEjE,WAAO,OAAO,UAAU,WAAW,cAAc,KAAK,KAAK,IAAI;AAAA,EACjE,CAAC,KAAK;AAEV;;;ACHA,IAAM,iBAA0B;AAAA,EAC9B,gBAAgB;AAClB;AAEO,SAAS,uBACd,SACA,UAAmB,gBACL;AACd,QAAM,EAAC,OAAO,eAAc,IAAI;AAChC,QAAM,gBAAgB,oBAAI,IAAa;AAEvC,WAAS,wBAAwB,MAAiC;AAChE,QAAI,SAAS,QAAQ,cAAc,QAAQ,OAAO;AAChD,aAAO;AAAA,IACT;AAEA,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AAEA,QACE,WAAW,IAAI,KACf,KAAK,oBAAoB,QACzB,CAAC,cAAc,IAAI,KAAK,gBAAgB,GACxC;AACA,oBAAc,IAAI,KAAK,gBAAgB;AAEvC,aAAO;AAAA,IACT;AAEA,QAAI,CAAC,cAAc,IAAI,GAAG;AACxB,UAAI,aAAa,IAAI,GAAG;AACtB,eAAO,wBAAwB,KAAK,aAAa;AAAA,MACnD;AAEA,aAAO;AAAA,IACT;AAEA,QAAI,cAAc,IAAI,IAAI,GAAG;AAC3B,aAAO;AAAA,IACT;AAEA,UAAM,gBAAgB,kBAAkB,IAAI;AAE5C,QAAI,kBAAkB,SAAS,SAAS;AAAA,IAExC,WAAW,aAAa,MAAM,aAAa,GAAG;AAC5C,oBAAc,IAAI,IAAI;AAAA,IACxB;AAEA,QAAI,QAAQ,MAAM,aAAa,GAAG;AAChC,YAAM,EAAC,iBAAgB,IAAI,KAAK;AAEhC,UAAI;AAAkB,sBAAc,IAAI,gBAAgB;AAExD,aAAO;AAAA,IACT;AAEA,WAAO,wBAAwB,KAAK,UAAU;AAAA,EAChD;AAEA,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,SAAO,wBAAwB,OAAO;AACxC;AAEO,SAAS,2BAA2B,MAAmC;AAC5E,QAAM,CAAC,uBAAuB,IAAI,uBAAuB,MAAM,EAAC,OAAO,EAAC,CAAC;AAEzE,SAAO,2BAA2B;AACpC;;;ACjFO,IAAK,kBAAL,kBAAKC,qBAAL;AACL,EAAAA,kCAAA,UAAO,KAAP;AACA,EAAAA,kCAAA,aAAU,KAAV;AACA,EAAAA,kCAAA,aAAU,MAAV;AAHU,SAAAA;AAAA,GAAA;AAMZ,IAAM,mBAAyC;AAAA,EAC7C,GAAG;AAAA,EACH,GAAG;AACL;AAEA,IAAM,mBAAyC;AAAA,EAC7C,GAAG;AAAA,EACH,GAAG;AACL;AAOO,SAAS,mBACd,mBACA,aACA,QACA,eAAe,IACf,sBAAsB,kBACtB,YAAY,kBACZ;AACA,QAAM;AAAA,IACJ,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,kBAAkB,iBAAiB;AAEvC,QAAM,YAA2C;AAAA,IAC/C,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACA,QAAM,QAAQ;AAAA,IACZ,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACA,QAAM,YAAY;AAAA,IAChB,QAAQ,oBAAoB,SAAS,oBAAoB;AAAA,IACzD,OAAO,oBAAoB,QAAQ,oBAAoB;AAAA,EACzD;AAEA,MACE,CAAC,SACD,YAAY,KAAK,oBAAoB,MAAM,UAAU,UACrD,QAAQ,MAAM,mBACd,YAAY,KAAK,oBAAoB,OAAO,UAAU,KACtD,YAAY,KAAK,oBAAoB,QAAQ,UAAU,GACvD;AAEA,cAAU,IAAI;AACd,UAAM,IACJ,eACA,KAAK;AAAA,OACF,oBAAoB,MAAM,UAAU,SAAS,YAAY,KACxD,UAAU;AAAA,IACd;AAAA,EACJ,WACE,CAAC,YACD,YAAY,KAAK,oBAAoB,SAAS,UAAU,UACxD,QAAQ,MAAM,oBACd,YAAY,KAAK,oBAAoB,OAAO,UAAU,KACtD,YAAY,KAAK,oBAAoB,QAAQ,UAAU,GACvD;AAEA,cAAU,IAAI;AACd,UAAM,IACJ,eACA,KAAK;AAAA,OACF,oBAAoB,SAAS,UAAU,SAAS,YAAY,KAC3D,UAAU;AAAA,IACd;AAAA,EACJ;AAEA,MACE,CAAC,WACD,YAAY,KAAK,oBAAoB,QAAQ,UAAU,SACvD,QAAQ,MAAM,oBACd,YAAY,KAAK,oBAAoB,MAAM,UAAU,KACrD,YAAY,KAAK,oBAAoB,SAAS,UAAU,GACxD;AAEA,cAAU,IAAI;AACd,UAAM,IACJ,eACA,KAAK;AAAA,OACF,oBAAoB,QAAQ,UAAU,QAAQ,YAAY,KACzD,UAAU;AAAA,IACd;AAAA,EACJ,WACE,CAAC,UACD,YAAY,KAAK,oBAAoB,OAAO,UAAU,SACtD,QAAQ,MAAM,mBACd,YAAY,KAAK,oBAAoB,MAAM,UAAU,KACrD,YAAY,KAAK,oBAAoB,SAAS,UAAU,GACxD;AAEA,cAAU,IAAI;AACd,UAAM,IACJ,eACA,KAAK;AAAA,OACF,oBAAoB,OAAO,UAAU,QAAQ,YAAY,KACxD,UAAU;AAAA,IACd;AAAA,EACJ;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;;ACvHA,SAAS,+BACP,SAGA;AACA,SACE,4BAA4B,WAC5B,OAAO,QAAQ,2BAA2B;AAE9C;AAEO,SAAS,uBAAuB,IAAa,iBAAiB,OAAO;AAC1E,MAAI,+BAA+B,EAAE,GAAG;AACtC,OAAG,uBAAuB,cAAc;AACxC;AAAA,EACF;AAEA,MAAI,EAAE,cAAc,cAAc;AAChC,WAAO,GAAG,eAAe;AAAA,EAC3B;AAEA,MAAI,CAAC,MAAM,IAAI,uBAAuB,IAAI,EAAC,OAAO,EAAC,CAAC;AAEpD,MAAI,EAAE,kBAAkB,cAAc;AACpC;AAAA,EACF;AAEA,QAAM,sBAAsB,kBAAkB,MAAM,GAClD,uBAAuB;AAAA,IACrB,oBAAoB,iBAAiB,kBAAkB;AAAA,EACzD,GACA,wBAAwB;AAAA,IACtB,oBAAoB,iBAAiB,mBAAmB;AAAA,EAC1D,GACA,UAAU,GAAG,YAAY,OAAO,YAAY,OAAO,WACnD,aACE,GAAG,YAAY,OAAO,YAAY,GAAG,eAAe,uBACpD,OAAO,YAAY,OAAO,cAC5B,WAAW,GAAG,aAAa,OAAO,aAAa,OAAO,YACtD,YACE,GAAG,aACD,OAAO,aACP,GAAG,cACH,wBACF,OAAO,aAAa,OAAO,aAC7B,eAAe,WAAW,CAAC;AAE7B,OAAK,WAAW,eAAe,gBAAgB;AAC7C,WAAO,YACL,GAAG,YACH,OAAO,YACP,OAAO,eAAe,IACtB,uBACA,GAAG,eAAe;AAAA,EACtB;AAEA,OAAK,YAAY,cAAc,gBAAgB;AAC7C,WAAO,aACL,GAAG,aACH,OAAO,aACP,OAAO,cAAc,IACrB,wBACA,GAAG,cAAc;AAAA,EACrB;AAEA,OAAK,WAAW,cAAc,YAAY,cAAc,CAAC,gBAAgB;AACvE,OAAG,eAAe,YAAY;AAAA,EAChC;AACF;;;ACvEO,IAAM,YAAN,MAAgB;AAAA,EAAhB;AAEL,SAAQ,QAAyB,oBAAI,IAAI;AAUzC,SAAO,QAAQ,MAAM;AACnB,YAAM,QAAQ,KAAK;AAEnB,WAAK,iBAAiB;AACtB,WAAK,QAAQ,oBAAI,IAAI;AAErB,iBAAW,QAAQ,OAAO;AACxB,aAAK;AAAA,MACP;AAAA,IACF;AAAA;AAAA,EAjBO,SAAS,MAAkB;AAChC,SAAK,MAAM,IAAI,IAAI;AAEnB,QAAI,CAAC,KAAK,gBAAgB;AACxB,WAAK,iBAAiB,sBAAsB,KAAK,KAAK;AAAA,IACxD;AAAA,EACF;AAYF;AAEO,IAAM,YAAY,IAAI,UAAU;;;ACxBhC,SAAS,QAAQ,UAAsB,UAA8B;AAC1E,QAAM,KAAK,WAAW,UAAU,QAAQ;AAExC,SAAO,MAAM,aAAa,EAAE;AAC9B;;;ACJA,SAAQ,iBAAgB;;;ACIjB,SAAS,iBACd,MACA,iBACA,iBACmB;AACnB,QAAM,EAAC,QAAQ,QAAQ,GAAG,YAAY,GAAG,WAAU,IAAI;AACvD,QAAM,IAAI,KAAK,OAAO,cAAc,IAAI,UAAU,WAAW,eAAe;AAC5E,QAAM,IACJ,KAAK,MACL,cACC,IAAI,UACH,WAAW,gBAAgB,MAAM,gBAAgB,QAAQ,GAAG,IAAI,CAAC,CAAC;AACtE,QAAM,IAAI,SAAS,KAAK,QAAQ,SAAS,KAAK;AAC9C,QAAM,IAAI,SAAS,KAAK,SAAS,SAAS,KAAK;AAE/C,SAAO;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,OAAO,IAAI;AAAA,IACX,QAAQ,IAAI;AAAA,IACZ,MAAM;AAAA,EACR;AACF;;;ACjBO,IAAM,SAAN,MAAa;AAAA,EAGlB,YAAoB,SAAkB;AAAlB;AAFpB,SAAQ,UAAU,oBAAI,IAAoB;AAAA,EAEH;AAAA,EAEhC,IAAI,YAA6C,SAAS,IAAI;AACnE,UAAM,EAAC,QAAO,IAAI;AAElB,QAAI,CAAC,cAAc,OAAO,GAAG;AAC3B;AAAA,IACF;AAEA,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,UAAU,GAAG;AACrD,YAAM,WAAW,GAAG,MAAM,GAAG,GAAG;AAEhC,UAAI,CAAC,KAAK,QAAQ,IAAI,QAAQ,GAAG;AAC/B,aAAK,QAAQ,IAAI,UAAU,QAAQ,MAAM,iBAAiB,QAAQ,CAAC;AAAA,MACrE;AAEA,cAAQ,MAAM;AAAA,QACZ;AAAA,QACA,OAAO,UAAU,WAAW,QAAQ,GAAG,KAAK;AAAA,MAC9C;AAAA,IACF;AAAA,EACF;AAAA,EAEO,OAAO,YAAsB,SAAS,IAAI;AAC/C,UAAM,EAAC,QAAO,IAAI;AAElB,QAAI,CAAC,cAAc,OAAO,GAAG;AAC3B;AAAA,IACF;AAEA,eAAW,OAAO,YAAY;AAC5B,YAAM,WAAW,GAAG,MAAM,GAAG,GAAG;AAEhC,cAAQ,MAAM,eAAe,QAAQ;AAAA,IACvC;AAAA,EACF;AAAA,EAEO,QAAQ;AACb,UAAM,EAAC,QAAO,IAAI;AAElB,QAAI,CAAC,cAAc,OAAO,GAAG;AAC3B;AAAA,IACF;AAEA,eAAW,CAAC,KAAK,KAAK,KAAK,KAAK,SAAS;AACvC,cAAQ,MAAM,YAAY,KAAK,KAAK;AAAA,IACtC;AAEA,QAAI,QAAQ,aAAa,OAAO,MAAM,IAAI;AACxC,cAAQ,gBAAgB,OAAO;AAAA,IACjC;AAAA,EACF;AACF;;;ACvDO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAc;AACZ,QAAM,SAAS,IAAI,OAAO,OAAO;AACjC,QAAM,EAAC,mBAAkB,IAAI,kBAAkB,OAAO;AAEtD,QAAM,aAAa,mBAAmB,MAAM,IAAI;AAEhD,SAAO,IAAI;AAAA,IACT,uBAAuB,WAAW,SAC9B,WACG;AAAA,MACC,CAAC,aACC,CAAC,SAAS,SAAS,WAAW,KAAK,CAAC,SAAS,SAAS,WAAW;AAAA,IACrE,EACC,KAAK,IAAI,IACZ;AAAA,EACN,CAAC;AAED,YAAU;AAEV,UAAQ,QAAQ,WAAW,OAAO,EAAE,SAAS,KAAK,MAAM;AACtD,eAAW;AACX,WAAO,MAAM;AAAA,EACf,CAAC;AACH;;;ACvCO,SAAS,iBAAiB,SAAmC;AAClE,QAAM,aAAa,QAAQ,cAAc;AAEzC,MAAI,WAAW,SAAS,GAAG;AACzB,UAAM,CAAC,SAAS,IAAI;AACpB,UAAM,EAAC,OAAM,IAAI;AACjB,UAAM,YACJ,kBAAkB,iBAAiB,OAAO,aAAa,IAAI,CAAC;AAE9D,QAAI,UAAU,SAAS,GAAG;AACxB,aAAO,YAAY,UAAU,SAAS,CAAC;AAAA,IACzC;AAAA,EACF;AAEA,SAAO;AACT;;;ACfO,SAAS,eAAe,WAAmB;AAChD,MAAI,cAAc,QAAQ;AACxB,WAAO;AAAA,EACT;AAEA,QAAM,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,UAAU,MAAM,GAAG;AAC3C,QAAM,SAAS,EAAC,GAAG,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,EAAC;AAEtE,MAAI,MAAM,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,GAAG;AACtC,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,GAAG,MAAM,OAAO,CAAC,IAAI,IAAI,OAAO;AAAA,IAChC,GAAG,MAAM,OAAO,CAAC,IAAI,IAAI,OAAO;AAAA,IAChC,GAAG,MAAM,OAAO,CAAC,IAAI,IAAI,OAAO;AAAA,EAClC;AACF;;;ACbO,SAAS,iBAAiB,SAI/B;AACA,QAAM,WAAW,iBAAiB,OAAO;AAEzC,MAAI,UAAU;AACZ,UAAM,EAAC,WAAAC,aAAY,GAAE,IAAI;AAEzB,QAAI,OAAOA,eAAc,UAAU;AACjC,YAAM,iBAAiB,eAAeA,UAAS;AAE/C,UAAI,gBAAgB;AAClB,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAEA,QAAM,EAAC,UAAS,IAAI,kBAAkB,OAAO;AAE7C,MAAI,WAAW;AACb,UAAM,iBAAiB,eAAe,SAAS;AAE/C,QAAI,gBAAgB;AAClB,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO,EAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAC;AAC1B;;;AClCO,SAAS,WAAW,OAAe;AACxC,MAAI,UAAU,QAAQ;AACpB,WAAO;AAAA,EACT;AAEA,QAAM,SAAS,MAAM,MAAM,GAAG;AAC9B,QAAM,IAAI,WAAW,OAAO,CAAC,CAAC;AAC9B,QAAM,IAAI,WAAW,OAAO,CAAC,CAAC;AAE9B,MAAI,MAAM,CAAC,KAAK,MAAM,CAAC,GAAG;AACxB,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,GAAG,MAAM,CAAC,IAAI,IAAI;AAAA,IAClB,GAAG,MAAM,CAAC,IAAI,IAAI;AAAA,EACpB;AACF;;;ACNO,SAAS,eAAe,gBAIV;AACnB,QAAM,EAAC,OAAO,WAAW,UAAS,IAAI;AACtC,QAAM,cAAc,WAAW,KAAK;AACpC,QAAM,kBAAkB,eAAe,SAAS;AAChD,QAAM,eAAe,qBAAqB,SAAS;AAEnD,MAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,iBAAiB;AACrD,WAAO;AAAA,EACT;AAEA,QAAM,kBAAkB;AAAA,IACtB,GAAG,aAAa,KAAK;AAAA,IACrB,GAAG,aAAa,KAAK;AAAA,EACvB;AAEA,QAAM,sBAAsB;AAAA,IAC1B,GAAG,iBAAiB,KAAK;AAAA,IACzB,GAAG,iBAAiB,KAAK;AAAA,EAC3B;AAEA,QAAM,mBAAmB;AAAA,IACvB,GAAG,cAAc,KAAK;AAAA,IACtB,GAAG,cAAc,KAAK;AAAA,IACtB,QAAQ,cAAc,UAAU;AAAA,IAChC,QAAQ,cAAc,UAAU;AAAA,EAClC;AAEA,SAAO;AAAA,IACL,GAAG,oBAAoB,IAAI,iBAAiB;AAAA,IAC5C,GAAG,oBAAoB,IAAI,iBAAiB;AAAA,IAC5C,GAAG,iBAAiB,KAAK;AAAA,IACzB,QAAQ,gBAAgB,IAAI,iBAAiB;AAAA,IAC7C,QAAQ,gBAAgB,IAAI,iBAAiB;AAAA,EAC/C;AACF;AAEA,SAAS,qBAAqB,WAAmB;AAC/C,MAAI,UAAU,WAAW,WAAW,GAAG;AACrC,UAAM,iBAAiB,UAAU,MAAM,GAAG,EAAE,EAAE,MAAM,IAAI;AAExD,WAAO;AAAA,MACL,GAAG,CAAC,eAAe,EAAE;AAAA,MACrB,GAAG,CAAC,eAAe,EAAE;AAAA,MACrB,QAAQ,CAAC,eAAe,CAAC;AAAA,MACzB,QAAQ,CAAC,eAAe,CAAC;AAAA,IAC3B;AAAA,EACF,WAAW,UAAU,WAAW,SAAS,GAAG;AAC1C,UAAM,iBAAiB,UAAU,MAAM,GAAG,EAAE,EAAE,MAAM,IAAI;AAExD,WAAO;AAAA,MACL,GAAG,CAAC,eAAe,CAAC;AAAA,MACpB,GAAG,CAAC,eAAe,CAAC;AAAA,MACpB,QAAQ,CAAC,eAAe,CAAC;AAAA,MACzB,QAAQ,CAAC,eAAe,CAAC;AAAA,IAC3B;AAAA,EACF;AAEA,SAAO;AACT;;;ACvEO,SAAS,mBAAmB,EAAC,GAAG,GAAG,GAAG,QAAQ,OAAM,GAAc;AACvE,SAAO,eAAe,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC,WAAW,MAAM,KAAK,MAAM;AAC1E;;;ATIO,IAAM,eAAN,cAA2B,UAAU;AAAA,EAC1C,YAAY,SAAkB,mBAAmB,OAAO;AACtD,QAAI,EAAC,KAAK,MAAM,OAAO,QAAQ,OAAO,OAAM,IAC1C,qBAAqB,OAAO;AAC9B,UAAM,iBAAiB,kBAAkB,OAAO;AAChD,UAAM,kBAAkB,eAAe,cAAc;AACrD,UAAM,QAAQ;AAAA,MACZ,GAAG,iBAAiB,UAAU;AAAA,MAC9B,GAAG,iBAAiB,UAAU;AAAA,IAChC;AACA,UAAM,qBAAqB,sBAAsB,OAAO;AAExD,QAAI,oBAAoB,oBAAoB,qBAAqB;AAC/D,YAAM,UAAU;AAAA,QACd,EAAC,KAAK,MAAM,OAAO,QAAQ,OAAO,OAAM;AAAA,QACxC;AAAA,QACA,eAAe;AAAA,MACjB;AAEA,YAAM,QAAQ;AACd,aAAO,QAAQ;AACf,cAAQ,QAAQ;AAChB,eAAS,QAAQ;AAAA,IACnB;AAEA,QAAI,sBAAsB,CAAC,kBAAkB;AAC3C,YAAM,MAAM,mBAAmB;AAC/B,aAAO,OAAO,mBAAmB;AACjC,cAAQ,QAAQ,mBAAmB;AACnC,eAAS,SAAS,mBAAmB;AACrC,YAAM,IAAI,mBAAmB;AAC7B,YAAM,IAAI,mBAAmB;AAAA,IAC/B;AAEA,UAAM,MAAM,KAAK,OAAO,MAAM;AAE9B,SAAK,QAAQ;AAAA,EACf;AACF;AAKA,SAAS,sBAAsB,SAAoC;AACjE,QAAM,WAAW,iBAAiB,OAAO;AAEzC,MAAI,UAAU;AACZ,UAAM,EAAC,YAAY,IAAI,YAAY,IAAI,QAAQ,GAAE,IAAI;AAErD,QAAI,aAAa,aAAa,OAAO;AACnC,aAAO,eAAe;AAAA,QACpB,WAAW,OAAO,cAAc,WAAW,YAAY;AAAA,QACvD,WAAW,OAAO,cAAc,WAAW,YAAY;AAAA,QACvD,OAAO,OAAO,UAAU,WAAW,QAAQ;AAAA,MAC7C,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;;;AUnEO,SAAS,gBACd,OACwB;AACxB,SAAO,iBAAiB;AAC1B;;;ACGO,SAAS,uBACdC,WAGA;AACA,SAAO,yBAAyBA;AAClC","sourcesContent":["import {BoundingRectangle} from '@dnd-kit/geometry';\n\nexport function getBoundingRectangle(element: Element): BoundingRectangle {\n const {width, height, top, left, bottom, right} =\n element.getBoundingClientRect();\n\n return {width, height, top, left, bottom, right};\n}\n","// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nexport const canUseDOM =\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined';\n","export function isWindow(element: Object): element is typeof window {\n const elementString = Object.prototype.toString.call(element);\n return (\n elementString === '[object Window]' ||\n // In Electron context the Window object serializes to [object global]\n elementString === '[object global]'\n );\n}\n","export function isNode(node: Object): node is Node {\n return 'nodeType' in node;\n}\n","import {isWindow} from '../type-guards/isWindow.ts';\nimport {isNode} from '../type-guards/isNode.ts';\n\nexport function getWindow(target: Event['target']): typeof window {\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return target.ownerDocument?.defaultView ?? window;\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\n\nexport function isDocument(node: Node): node is Document {\n const {Document} = getWindow(node);\n\n return node instanceof Document;\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\n\nimport {isWindow} from './isWindow.ts';\n\nexport function isHTMLElement(node: Node | Window): node is HTMLElement {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n","import {isDocument} from '../type-guards/isDocument.ts';\nimport {isHTMLElement} from '../type-guards/isHTMLElement.ts';\nimport {isNode} from '../type-guards/isNode.ts';\nimport {isWindow} from '../type-guards/isWindow.ts';\n\nexport function getDocument(target: Event['target']): Document {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n","import type {BoundingRectangle} from '@dnd-kit/geometry';\n\nimport {getDocument} from '../execution-context/index.ts';\n\nexport function getViewportBoundingRectangle(\n element: Element\n): BoundingRectangle {\n const {documentElement} = getDocument(element);\n const width = documentElement.clientWidth;\n const height = documentElement.clientHeight;\n\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height,\n };\n}\n","export function cloneElement(element: Element): Element {\n const selector = 'input, textarea, select, canvas, [contenteditable]';\n const clonedElement = element.cloneNode(true) as HTMLElement;\n const fields = Array.from(element.querySelectorAll(selector));\n const clonedFields = Array.from(clonedElement.querySelectorAll(selector));\n\n clonedFields.forEach((field, index) => {\n const originalField = fields[index];\n\n if (isField(field) && isField(originalField)) {\n if (field.type !== 'file') {\n field.value = originalField.value;\n }\n\n // Fixes an issue with original radio buttons losing their value once the\n // clone is inserted in the DOM, as radio button `name` attributes must be unique\n if (field.type === 'radio' && field.name) {\n field.name = `Cloned__${field.name}`;\n }\n }\n\n if (\n field instanceof HTMLCanvasElement &&\n originalField instanceof HTMLCanvasElement &&\n originalField.width > 0 &&\n originalField.height > 0\n ) {\n const destCtx = field.getContext('2d');\n destCtx?.drawImage(originalField, 0, 0);\n }\n });\n\n return clonedElement;\n}\n\nfunction isField(\n element: Element\n): element is HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement {\n return 'value' in element;\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\n\nexport function supportsStyle(\n element: Element\n): element is Element & {style: CSSStyleDeclaration} {\n return (\n 'style' in element &&\n element.style instanceof getWindow(element).CSSStyleDeclaration\n );\n}\n","import {cloneElement} from './cloneElement.ts';\nimport {supportsStyle} from '../type-guards/supportsStyle.ts';\n\nexport function createPlaceholder(\n element: Element,\n clone = false,\n attributes?: Record<string, string>\n): Element {\n const placeholder = cloneElement(element);\n\n if (supportsStyle(placeholder)) {\n if (!clone) {\n placeholder.style.setProperty('opacity', '0');\n }\n }\n\n placeholder.setAttribute('inert', 'true');\n placeholder.setAttribute('tab-index', '-1');\n placeholder.setAttribute('aria-hidden', 'true');\n\n if (attributes) {\n for (const [key, value] of Object.entries(attributes)) {\n placeholder.setAttribute(key, value);\n }\n }\n\n return placeholder;\n}\n","export interface EventListenerDescriptor {\n type: string;\n listener(event: Event): void;\n options?: AddEventListenerOptions;\n}\n\ntype EventListenerInput = EventListenerDescriptor[] | EventListenerDescriptor;\n\ntype EventListenerEntry = [EventTarget, EventListenerDescriptor];\n\nexport class Listeners {\n private entries: Set<EventListenerEntry> = new Set();\n\n constructor() {}\n\n public bind(target: EventTarget, input: EventListenerInput) {\n const listeners = Array.isArray(input) ? input : [input];\n const entries: EventListenerEntry[] = [];\n\n for (const descriptor of listeners) {\n const {type, listener, options} = descriptor;\n const entry: EventListenerEntry = [target, descriptor];\n\n target.addEventListener(type, listener, options);\n this.entries.add(entry);\n entries.push(entry);\n }\n\n return function cleanup() {\n for (const [target, {type, listener, options}] of entries) {\n target.removeEventListener(type, listener, options);\n }\n };\n }\n\n public clear = () => {\n for (const entry of this.entries) {\n const [target, {type, listener, options}] = entry;\n\n target.removeEventListener(type, listener, options);\n }\n\n this.entries.clear();\n };\n}\n","export function supportsPopover(element: Element): element is Element & {\n showPopover(): void;\n hidePopover(): void;\n} {\n return (\n 'showPopover' in element &&\n 'hidePopover' in element &&\n typeof element.showPopover === 'function' &&\n typeof element.hidePopover === 'function'\n );\n}\n","import {supportsPopover} from './supportsPopover.ts';\n\nexport function showPopover(element: Element) {\n if (\n supportsPopover(element) &&\n element.isConnected &&\n element.hasAttribute('popover')\n ) {\n element.showPopover();\n }\n}\n","import {canUseDOM} from '../execution-context/canUseDOM.ts';\nimport {getDocument} from '../execution-context/getDocument.ts';\n\nexport function isDocumentScrollingElement(element: Element | null) {\n if (!canUseDOM || !element) {\n return false;\n }\n\n return element === getDocument(element).scrollingElement;\n}\n","import {getBoundingRectangle} from '../bounding-rectangle/getBoundingRectangle.ts';\nimport {getViewportBoundingRectangle} from '../bounding-rectangle/getViewportBoundingRectangle.ts';\nimport {isDocumentScrollingElement} from './documentScrollingElement.ts';\n\nexport function getScrollPosition(scrollableElement: Element) {\n const rect = isDocumentScrollingElement(scrollableElement)\n ? getViewportBoundingRectangle(scrollableElement)\n : getBoundingRectangle(scrollableElement);\n\n const dimensions = isDocumentScrollingElement(scrollableElement)\n ? {\n height: window.innerHeight,\n width: window.innerWidth,\n }\n : {\n height: scrollableElement.clientHeight,\n width: scrollableElement.clientWidth,\n };\n const position = {\n current: {\n x: scrollableElement.scrollLeft,\n y: scrollableElement.scrollTop,\n },\n max: {\n x: scrollableElement.scrollWidth - dimensions.width,\n y: scrollableElement.scrollHeight - dimensions.height,\n },\n };\n\n const isTop = position.current.y <= 0;\n const isLeft = position.current.x <= 0;\n const isBottom = position.current.y >= position.max.y;\n const isRight = position.current.x >= position.max.x;\n\n return {\n rect,\n position,\n isTop,\n isLeft,\n isBottom,\n isRight,\n };\n}\n","import type {Coordinates} from '@dnd-kit/geometry';\n\nimport {getScrollPosition} from './getScrollPosition.ts';\n\nexport function canScroll(scrollableElement: Element, by?: Coordinates) {\n const {isTop, isBottom, isLeft, isRight, position} =\n getScrollPosition(scrollableElement);\n\n const {x, y} = by ?? {x: 0, y: 0};\n\n const top = !isTop && position.current.y + y > 0;\n const bottom = !isBottom && position.current.y + y < position.max.y;\n const left = !isLeft && position.current.x + x > 0;\n const right = !isRight && position.current.x + x < position.max.x;\n\n return {\n top,\n bottom,\n left,\n right,\n x: left || right,\n y: top || bottom,\n };\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\n\nexport function isSVGElement(node: Node): node is SVGElement {\n return node instanceof getWindow(node).SVGElement;\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\n\nexport function getComputedStyles(element: Element) {\n return getWindow(element).getComputedStyle(element);\n}\n","import {getComputedStyles} from '../styles/getComputedStyles.ts';\n\nexport function isFixed(\n node: Element,\n computedStyle: CSSStyleDeclaration = getComputedStyles(node)\n): boolean {\n return (\n computedStyle.position === 'fixed' || computedStyle.position === 'sticky'\n );\n}\n","import {getComputedStyles} from '../styles/getComputedStyles.ts';\n\nexport function isScrollable(\n element: HTMLElement,\n computedStyle: CSSStyleDeclaration = getComputedStyles(element)\n): boolean {\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = ['overflow', 'overflowX', 'overflowY'];\n\n return (\n properties.find((property) => {\n const value = computedStyle[property as keyof CSSStyleDeclaration];\n\n return typeof value === 'string' ? overflowRegex.test(value) : false;\n }) != null\n );\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\nimport {isDocument} from '../type-guards/isDocument.ts';\nimport {isHTMLElement} from '../type-guards/isHTMLElement.ts';\nimport {isSVGElement} from '../type-guards/isSVGElement.ts';\nimport {getComputedStyles} from '../styles/getComputedStyles.ts';\nimport {isFixed} from './isFixed.ts';\nimport {isScrollable} from './isScrollable.ts';\n\ninterface Options {\n limit?: number;\n excludeElement?: boolean;\n}\n\nconst defaultOptions: Options = {\n excludeElement: true,\n};\n\nexport function getScrollableAncestors(\n element: Node | null,\n options: Options = defaultOptions\n): Set<Element> {\n const {limit, excludeElement} = options;\n const scrollParents = new Set<Element>();\n\n function findScrollableAncestors(node: Node | null): Set<Element> {\n if (limit != null && scrollParents.size >= limit) {\n return scrollParents;\n }\n\n if (!node) {\n return scrollParents;\n }\n\n if (\n isDocument(node) &&\n node.scrollingElement != null &&\n !scrollParents.has(node.scrollingElement)\n ) {\n scrollParents.add(node.scrollingElement);\n\n return scrollParents;\n }\n\n if (!isHTMLElement(node)) {\n if (isSVGElement(node)) {\n return findScrollableAncestors(node.parentElement);\n }\n\n return scrollParents;\n }\n\n if (scrollParents.has(node)) {\n return scrollParents;\n }\n\n const computedStyle = getComputedStyles(node);\n\n if (excludeElement && node === element) {\n // no-op\n } else if (isScrollable(node, computedStyle)) {\n scrollParents.add(node);\n }\n\n if (isFixed(node, computedStyle)) {\n const {scrollingElement} = node.ownerDocument;\n\n if (scrollingElement) scrollParents.add(scrollingElement);\n\n return scrollParents;\n }\n\n return findScrollableAncestors(node.parentNode);\n }\n\n if (!element) {\n return scrollParents;\n }\n\n return findScrollableAncestors(element);\n}\n\nexport function getFirstScrollableAncestor(node: Node | null): Element | null {\n const [firstScrollableAncestor] = getScrollableAncestors(node, {limit: 1});\n\n return firstScrollableAncestor ?? null;\n}\n","import type {Axis, Coordinates} from '@dnd-kit/geometry';\n\nimport {getScrollPosition} from './getScrollPosition.ts';\n\nexport enum ScrollDirection {\n Idle = 0,\n Forward = 1,\n Reverse = -1,\n}\n\nconst defaultThreshold: Record<Axis, number> = {\n x: 0.2,\n y: 0.2,\n};\n\nconst defaultTolerance: Record<Axis, number> = {\n x: 10,\n y: 10,\n};\n\ninterface ScrollIntent {\n x: ScrollDirection;\n y: ScrollDirection;\n}\n\nexport function detectScrollIntent(\n scrollableElement: Element,\n coordinates: Coordinates,\n intent?: ScrollIntent,\n acceleration = 25,\n thresholdPercentage = defaultThreshold,\n tolerance = defaultTolerance\n) {\n const {\n rect: scrollContainerRect,\n isTop,\n isBottom,\n isLeft,\n isRight,\n } = getScrollPosition(scrollableElement);\n\n const direction: Record<Axis, ScrollDirection> = {\n x: ScrollDirection.Idle,\n y: ScrollDirection.Idle,\n };\n const speed = {\n x: 0,\n y: 0,\n };\n const threshold = {\n height: scrollContainerRect.height * thresholdPercentage.y,\n width: scrollContainerRect.width * thresholdPercentage.x,\n };\n\n if (\n !isTop &&\n coordinates.y <= scrollContainerRect.top + threshold.height &&\n intent?.y !== ScrollDirection.Forward &&\n coordinates.x >= scrollContainerRect.left - tolerance.x &&\n coordinates.x <= scrollContainerRect.right + tolerance.x\n ) {\n // Scroll Up\n direction.y = ScrollDirection.Reverse;\n speed.y =\n acceleration *\n Math.abs(\n (scrollContainerRect.top + threshold.height - coordinates.y) /\n threshold.height\n );\n } else if (\n !isBottom &&\n coordinates.y >= scrollContainerRect.bottom - threshold.height &&\n intent?.y !== ScrollDirection.Reverse &&\n coordinates.x >= scrollContainerRect.left - tolerance.x &&\n coordinates.x <= scrollContainerRect.right + tolerance.x\n ) {\n // Scroll Down\n direction.y = ScrollDirection.Forward;\n speed.y =\n acceleration *\n Math.abs(\n (scrollContainerRect.bottom - threshold.height - coordinates.y) /\n threshold.height\n );\n }\n\n if (\n !isRight &&\n coordinates.x >= scrollContainerRect.right - threshold.width &&\n intent?.x !== ScrollDirection.Reverse &&\n coordinates.y >= scrollContainerRect.top - tolerance.y &&\n coordinates.y <= scrollContainerRect.bottom + tolerance.y\n ) {\n // Scroll Right\n direction.x = ScrollDirection.Forward;\n speed.x =\n acceleration *\n Math.abs(\n (scrollContainerRect.right - threshold.width - coordinates.x) /\n threshold.width\n );\n } else if (\n !isLeft &&\n coordinates.x <= scrollContainerRect.left + threshold.width &&\n intent?.x !== ScrollDirection.Forward &&\n coordinates.y >= scrollContainerRect.top - tolerance.y &&\n coordinates.y <= scrollContainerRect.bottom + tolerance.y\n ) {\n // Scroll Left\n direction.x = ScrollDirection.Reverse;\n speed.x =\n acceleration *\n Math.abs(\n (scrollContainerRect.left + threshold.width - coordinates.x) /\n threshold.width\n );\n }\n\n return {\n direction,\n speed,\n };\n}\n","import {getComputedStyles} from '../styles/getComputedStyles.ts';\nimport {getScrollableAncestors} from './getScrollableAncestors.ts';\n\nfunction supportsScrollIntoViewIfNeeded(\n element: Element\n): element is Element & {\n scrollIntoViewIfNeeded: (centerIfNeeded?: boolean) => void;\n} {\n return (\n 'scrollIntoViewIfNeeded' in element &&\n typeof element.scrollIntoViewIfNeeded === 'function'\n );\n}\n\nexport function scrollIntoViewIfNeeded(el: Element, centerIfNeeded = false) {\n if (supportsScrollIntoViewIfNeeded(el)) {\n el.scrollIntoViewIfNeeded(centerIfNeeded);\n return;\n }\n\n if (!(el instanceof HTMLElement)) {\n return el.scrollIntoView();\n }\n\n var [parent] = getScrollableAncestors(el, {limit: 1});\n\n if (!(parent instanceof HTMLElement)) {\n return;\n }\n\n const parentComputedStyle = getComputedStyles(parent),\n parentBorderTopWidth = parseInt(\n parentComputedStyle.getPropertyValue('border-top-width')\n ),\n parentBorderLeftWidth = parseInt(\n parentComputedStyle.getPropertyValue('border-left-width')\n ),\n overTop = el.offsetTop - parent.offsetTop < parent.scrollTop,\n overBottom =\n el.offsetTop - parent.offsetTop + el.clientHeight - parentBorderTopWidth >\n parent.scrollTop + parent.clientHeight,\n overLeft = el.offsetLeft - parent.offsetLeft < parent.scrollLeft,\n overRight =\n el.offsetLeft -\n parent.offsetLeft +\n el.clientWidth -\n parentBorderLeftWidth >\n parent.scrollLeft + parent.clientWidth,\n alignWithTop = overTop && !overBottom;\n\n if ((overTop || overBottom) && centerIfNeeded) {\n parent.scrollTop =\n el.offsetTop -\n parent.offsetTop -\n parent.clientHeight / 2 -\n parentBorderTopWidth +\n el.clientHeight / 2;\n }\n\n if ((overLeft || overRight) && centerIfNeeded) {\n parent.scrollLeft =\n el.offsetLeft -\n parent.offsetLeft -\n parent.clientWidth / 2 -\n parentBorderLeftWidth +\n el.clientWidth / 2;\n }\n\n if ((overTop || overBottom || overLeft || overRight) && !centerIfNeeded) {\n el.scrollIntoView(alignWithTop);\n }\n}\n","export class Scheduler {\n private animationFrame: number | undefined;\n private tasks: Set<() => void> = new Set();\n\n public schedule(task: () => void) {\n this.tasks.add(task);\n\n if (!this.animationFrame) {\n this.animationFrame = requestAnimationFrame(this.flush);\n }\n }\n\n public flush = () => {\n const tasks = this.tasks;\n\n this.animationFrame = undefined;\n this.tasks = new Set();\n\n for (const task of tasks) {\n task();\n }\n };\n}\n\nexport const scheduler = new Scheduler();\n","export function timeout(callback: () => void, duration: number): () => void {\n const id = setTimeout(callback, duration);\n\n return () => clearTimeout(id);\n}\n","import {Rectangle} from '@dnd-kit/geometry';\n\nimport {inverseTransform} from '../transform/inverseTransform.ts';\nimport {getBoundingRectangle} from '../bounding-rectangle/getBoundingRectangle.ts';\nimport {getComputedStyles} from '../styles/getComputedStyles.ts';\nimport {parseTransform, type Transform} from '../transform/index.ts';\nimport {getFinalKeyframe} from '../keyframes/getFinalKeyframe.ts';\n\nexport class DOMRectangle extends Rectangle {\n constructor(element: Element, ignoreTransforms = false) {\n let {top, left, right, bottom, width, height} =\n getBoundingRectangle(element);\n const computedStyles = getComputedStyles(element);\n const parsedTransform = parseTransform(computedStyles);\n const scale = {\n x: parsedTransform?.scaleX ?? 1,\n y: parsedTransform?.scaleY ?? 1,\n };\n const projectedTransform = getProjectedTransform(element);\n\n if (parsedTransform && (ignoreTransforms || projectedTransform)) {\n const updated = inverseTransform(\n {top, left, right, bottom, width, height},\n parsedTransform,\n computedStyles.transformOrigin\n );\n\n top = updated.top;\n left = updated.left;\n width = updated.width;\n height = updated.height;\n }\n\n if (projectedTransform && !ignoreTransforms) {\n top = top + projectedTransform.y;\n left = left + projectedTransform.x;\n width = width * projectedTransform.scaleX;\n height = height * projectedTransform.scaleY;\n scale.x = projectedTransform.scaleX;\n scale.y = projectedTransform.scaleY;\n }\n\n super(left, top, width, height);\n\n this.scale = scale;\n }\n}\n\n/*\n * Get the projected transform of an element based on its final keyframe\n */\nfunction getProjectedTransform(element: Element): Transform | null {\n const keyframe = getFinalKeyframe(element);\n\n if (keyframe) {\n const {transform = '', translate = '', scale = ''} = keyframe;\n\n if (transform || translate || scale) {\n return parseTransform({\n transform: typeof transform === 'string' ? transform : '',\n translate: typeof translate === 'string' ? translate : '',\n scale: typeof scale === 'string' ? scale : '',\n });\n }\n }\n\n return null;\n}\n","import type {BoundingRectangle} from '@dnd-kit/geometry';\n\nimport {type Transform} from './parseTransform.ts';\n\nexport function inverseTransform(\n rect: BoundingRectangle,\n parsedTransform: Transform,\n transformOrigin: string\n): BoundingRectangle {\n const {scaleX, scaleY, x: translateX, y: translateY} = parsedTransform;\n const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y =\n rect.top -\n translateY -\n (1 - scaleY) *\n parseFloat(transformOrigin.slice(transformOrigin.indexOf(' ') + 1));\n const w = scaleX ? rect.width / scaleX : rect.width;\n const h = scaleY ? rect.height / scaleY : rect.height;\n\n return {\n width: w,\n height: h,\n top: y,\n right: x + w,\n bottom: y + h,\n left: x,\n };\n}\n","import {supportsStyle} from '../type-guards/supportsStyle.ts';\n\ntype ExtractStringProperties<T> = {\n [K in keyof T]?: T[K] extends string ? string : never;\n};\n\nexport type StyleDeclaration = ExtractStringProperties<CSSStyleDeclaration> & {\n viewTransitionName?: string;\n};\n\nexport class Styles {\n private initial = new Map<string, string>();\n\n constructor(private element: Element) {}\n\n public set(properties: Record<string, string | number>, prefix = '') {\n const {element} = this;\n\n if (!supportsStyle(element)) {\n return;\n }\n\n for (const [key, value] of Object.entries(properties)) {\n const property = `${prefix}${key}`;\n\n if (!this.initial.has(property)) {\n this.initial.set(property, element.style.getPropertyValue(property));\n }\n\n element.style.setProperty(\n property,\n typeof value === 'string' ? value : `${value}px`\n );\n }\n }\n\n public remove(properties: string[], prefix = '') {\n const {element} = this;\n\n if (!supportsStyle(element)) {\n return;\n }\n\n for (const key of properties) {\n const property = `${prefix}${key}`;\n\n element.style.removeProperty(property);\n }\n }\n\n public reset() {\n const {element} = this;\n\n if (!supportsStyle(element)) {\n return;\n }\n\n for (const [key, value] of this.initial) {\n element.style.setProperty(key, value);\n }\n\n if (element.getAttribute('style') === '') {\n element.removeAttribute('style');\n }\n }\n}\n","import {Styles} from '../styles/index.ts';\nimport {getComputedStyles} from '../styles/getComputedStyles.ts';\n\ninterface Arguments {\n element: Element;\n keyframes: PropertyIndexedKeyframes | Keyframe[];\n options: KeyframeAnimationOptions;\n onReady?(): void;\n onFinish?(): void;\n}\nexport function animateTransform({\n element,\n keyframes,\n options,\n onReady,\n onFinish,\n}: Arguments) {\n const styles = new Styles(element);\n const {transitionProperty} = getComputedStyles(element);\n\n const properties = transitionProperty.split(', ');\n\n styles.set({\n 'transition-property': properties.length\n ? properties\n .filter(\n (property) =>\n !property.includes('transform') && !property.includes('translate')\n )\n .join(', ')\n : 'none',\n });\n\n onReady?.();\n\n element.animate(keyframes, options).finished.then(() => {\n onFinish?.();\n styles.reset();\n });\n}\n","export function getFinalKeyframe(element: Element): Keyframe | null {\n const animations = element.getAnimations();\n\n if (animations.length > 0) {\n const [animation] = animations;\n const {effect} = animation;\n const keyframes =\n effect instanceof KeyframeEffect ? effect.getKeyframes() : [];\n\n if (keyframes.length > 0) {\n return keyframes?.[keyframes.length - 1];\n }\n }\n\n return null;\n}\n","export function parseTranslate(translate: string) {\n if (translate === 'none') {\n return null;\n }\n\n const [x, y, z = '0'] = translate.split(' ');\n const output = {x: parseFloat(x), y: parseFloat(y), z: parseInt(z, 10)};\n\n if (isNaN(output.x) && isNaN(output.y)) {\n return null;\n }\n\n return {\n x: isNaN(output.x) ? 0 : output.x,\n y: isNaN(output.y) ? 0 : output.y,\n z: isNaN(output.z) ? 0 : output.z,\n };\n}\n","import {getFinalKeyframe} from '../keyframes/getFinalKeyframe.ts';\nimport {getComputedStyles} from '../styles/getComputedStyles.ts';\nimport {parseTranslate} from './parseTranslate.ts';\n\nexport function computeTranslate(element: Element): {\n x: number;\n y: number;\n z: number;\n} {\n const keyframe = getFinalKeyframe(element);\n\n if (keyframe) {\n const {translate = ''} = keyframe;\n\n if (typeof translate === 'string') {\n const finalTranslate = parseTranslate(translate);\n\n if (finalTranslate) {\n return finalTranslate;\n }\n }\n }\n\n const {translate} = getComputedStyles(element);\n\n if (translate) {\n const finalTranslate = parseTranslate(translate);\n\n if (finalTranslate) {\n return finalTranslate;\n }\n }\n\n return {x: 0, y: 0, z: 0};\n}\n","export function parseScale(scale: string) {\n if (scale === 'none') {\n return null;\n }\n\n const values = scale.split(' ');\n const x = parseFloat(values[0]);\n const y = parseFloat(values[1]);\n\n if (isNaN(x) && isNaN(y)) {\n return null;\n }\n\n return {\n x: isNaN(x) ? y : x,\n y: isNaN(y) ? x : y,\n };\n}\n","import type {Coordinates} from '@dnd-kit/geometry';\n\nimport {parseScale} from './parseScale.ts';\nimport {parseTranslate} from './parseTranslate.ts';\n\nexport interface Transform extends Coordinates {\n z?: number;\n scaleX: number;\n scaleY: number;\n}\n\nexport function parseTransform(computedStyles: {\n scale: string;\n transform: string;\n translate: string;\n}): Transform | null {\n const {scale, transform, translate} = computedStyles;\n const parsedScale = parseScale(scale);\n const parsedTranslate = parseTranslate(translate);\n const parsedMatrix = parseTransformMatrix(transform);\n\n if (!parsedMatrix && !parsedScale && !parsedTranslate) {\n return null;\n }\n\n const normalizedScale = {\n x: parsedScale?.x ?? 1,\n y: parsedScale?.y ?? 1,\n };\n\n const normalizedTranslate = {\n x: parsedTranslate?.x ?? 0,\n y: parsedTranslate?.y ?? 0,\n };\n\n const normalizedMatrix = {\n x: parsedMatrix?.x ?? 0,\n y: parsedMatrix?.y ?? 0,\n scaleX: parsedMatrix?.scaleX ?? 1,\n scaleY: parsedMatrix?.scaleY ?? 1,\n };\n\n return {\n x: normalizedTranslate.x + normalizedMatrix.x,\n y: normalizedTranslate.y + normalizedMatrix.y,\n z: parsedTranslate?.z ?? 0,\n scaleX: normalizedScale.x * normalizedMatrix.scaleX,\n scaleY: normalizedScale.y * normalizedMatrix.scaleY,\n };\n}\n\nfunction parseTransformMatrix(transform: string) {\n if (transform.startsWith('matrix3d(')) {\n const transformArray = transform.slice(9, -1).split(/, /);\n\n return {\n x: +transformArray[12],\n y: +transformArray[13],\n scaleX: +transformArray[0],\n scaleY: +transformArray[5],\n };\n } else if (transform.startsWith('matrix(')) {\n const transformArray = transform.slice(7, -1).split(/, /);\n\n return {\n x: +transformArray[4],\n y: +transformArray[5],\n scaleX: +transformArray[0],\n scaleY: +transformArray[3],\n };\n }\n\n return null;\n}\n","import type {Transform} from './parseTransform.ts';\n\nexport function stringifyTransform({x, y, z, scaleX, scaleY}: Transform) {\n return `translate3d(${x}px, ${y}px, ${z ?? 0}) scale(${scaleX}, ${scaleY})`;\n}\n","export function isKeyboardEvent(\n event: Event | null | undefined\n): event is KeyboardEvent {\n return event instanceof KeyboardEvent;\n}\n","interface ViewTransition {\n ready: Promise<void>;\n updateCallbackDone: Promise<void>;\n finished: Promise<void>;\n skipTransition(): void;\n}\n\nexport function supportsViewTransition(\n document: Document\n): document is Document & {\n startViewTransition(updateCallback: () => void): ViewTransition;\n} {\n return 'startViewTransition' in document;\n}\n"]}
1
+ {"version":3,"sources":["src/utilities/bounding-rectangle/getBoundingRectangle.ts","src/utilities/execution-context/canUseDOM.ts","src/utilities/type-guards/isWindow.ts","src/utilities/type-guards/isNode.ts","src/utilities/execution-context/getWindow.ts","src/utilities/type-guards/isDocument.ts","src/utilities/type-guards/isHTMLElement.ts","src/utilities/execution-context/getDocument.ts","src/utilities/bounding-rectangle/getViewportBoundingRectangle.ts","src/utilities/element/cloneElement.ts","src/utilities/type-guards/supportsStyle.ts","src/utilities/element/createPlaceholder.ts","src/utilities/event-listeners/Listeners.ts","src/utilities/popover/supportsPopover.ts","src/utilities/popover/showPopover.ts","src/utilities/scroll/documentScrollingElement.ts","src/utilities/scroll/getScrollPosition.ts","src/utilities/scroll/canScroll.ts","src/utilities/type-guards/isSVGElement.ts","src/utilities/styles/getComputedStyles.ts","src/utilities/scroll/isFixed.ts","src/utilities/scroll/isScrollable.ts","src/utilities/scroll/getScrollableAncestors.ts","src/utilities/scroll/detectScrollIntent.ts","src/utilities/scroll/scrollIntoViewIfNeeded.ts","src/utilities/scheduling/scheduler.ts","src/utilities/scheduling/timeout.ts","src/utilities/shapes/DOMRectangle.ts","src/utilities/transform/inverseTransform.ts","src/utilities/styles/Styles.ts","src/utilities/transform/animateTransform.ts","src/utilities/keyframes/getFinalKeyframe.ts","src/utilities/transform/parseTranslate.ts","src/utilities/transform/computeTranslate.ts","src/utilities/transform/parseScale.ts","src/utilities/transform/parseTransform.ts","src/utilities/transform/stringifyTransform.ts","src/utilities/type-guards/isKeyboardEvent.ts","src/utilities/type-guards/supportsViewTransition.ts"],"names":["target","ScrollDirection","translate","document"],"mappings":"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","sourcesContent":["import {BoundingRectangle} from '@dnd-kit/geometry';\n\nexport function getBoundingRectangle(element: Element): BoundingRectangle {\n const {width, height, top, left, bottom, right} =\n element.getBoundingClientRect();\n\n return {width, height, top, left, bottom, right};\n}\n","// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nexport const canUseDOM =\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined';\n","export function isWindow(element: Object): element is typeof window {\n const elementString = Object.prototype.toString.call(element);\n return (\n elementString === '[object Window]' ||\n // In Electron context the Window object serializes to [object global]\n elementString === '[object global]'\n );\n}\n","export function isNode(node: Object): node is Node {\n return 'nodeType' in node;\n}\n","import {isWindow} from '../type-guards/isWindow.ts';\nimport {isNode} from '../type-guards/isNode.ts';\n\nexport function getWindow(target: Event['target']): typeof window {\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return target.ownerDocument?.defaultView ?? window;\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\n\nexport function isDocument(node: Node): node is Document {\n const {Document} = getWindow(node);\n\n return node instanceof Document;\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\n\nimport {isWindow} from './isWindow.ts';\n\nexport function isHTMLElement(node: Node | Window): node is HTMLElement {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n","import {isDocument} from '../type-guards/isDocument.ts';\nimport {isHTMLElement} from '../type-guards/isHTMLElement.ts';\nimport {isNode} from '../type-guards/isNode.ts';\nimport {isWindow} from '../type-guards/isWindow.ts';\n\nexport function getDocument(target: Event['target']): Document {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n","import type {BoundingRectangle} from '@dnd-kit/geometry';\n\nimport {getDocument} from '../execution-context/index.ts';\n\nexport function getViewportBoundingRectangle(\n element: Element\n): BoundingRectangle {\n const {documentElement} = getDocument(element);\n const width = documentElement.clientWidth;\n const height = documentElement.clientHeight;\n\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height,\n };\n}\n","export function cloneElement(element: Element): Element {\n const selector = 'input, textarea, select, canvas, [contenteditable]';\n const clonedElement = element.cloneNode(true) as HTMLElement;\n const fields = Array.from(element.querySelectorAll(selector));\n const clonedFields = Array.from(clonedElement.querySelectorAll(selector));\n\n clonedFields.forEach((field, index) => {\n const originalField = fields[index];\n\n if (isField(field) && isField(originalField)) {\n if (field.type !== 'file') {\n field.value = originalField.value;\n }\n\n // Fixes an issue with original radio buttons losing their value once the\n // clone is inserted in the DOM, as radio button `name` attributes must be unique\n if (field.type === 'radio' && field.name) {\n field.name = `Cloned__${field.name}`;\n }\n }\n\n if (\n field instanceof HTMLCanvasElement &&\n originalField instanceof HTMLCanvasElement &&\n originalField.width > 0 &&\n originalField.height > 0\n ) {\n const destCtx = field.getContext('2d');\n destCtx?.drawImage(originalField, 0, 0);\n }\n });\n\n return clonedElement;\n}\n\nfunction isField(\n element: Element\n): element is HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement {\n return 'value' in element;\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\n\nexport function supportsStyle(\n element: Element\n): element is Element & {style: CSSStyleDeclaration} {\n return (\n 'style' in element &&\n element.style instanceof getWindow(element).CSSStyleDeclaration\n );\n}\n","import {cloneElement} from './cloneElement.ts';\nimport {supportsStyle} from '../type-guards/supportsStyle.ts';\n\nexport function createPlaceholder(\n element: Element,\n clone = false,\n attributes?: Record<string, string>\n): Element {\n const placeholder = cloneElement(element);\n\n if (supportsStyle(placeholder)) {\n if (!clone) {\n placeholder.style.setProperty('opacity', '0');\n }\n }\n\n placeholder.setAttribute('inert', 'true');\n placeholder.setAttribute('tab-index', '-1');\n placeholder.setAttribute('aria-hidden', 'true');\n\n if (attributes) {\n for (const [key, value] of Object.entries(attributes)) {\n placeholder.setAttribute(key, value);\n }\n }\n\n return placeholder;\n}\n","export interface EventListenerDescriptor {\n type: string;\n listener(event: Event): void;\n options?: AddEventListenerOptions;\n}\n\ntype EventListenerInput = EventListenerDescriptor[] | EventListenerDescriptor;\n\ntype EventListenerEntry = [EventTarget, EventListenerDescriptor];\n\nexport class Listeners {\n private entries: Set<EventListenerEntry> = new Set();\n\n constructor() {}\n\n public bind(target: EventTarget, input: EventListenerInput) {\n const listeners = Array.isArray(input) ? input : [input];\n const entries: EventListenerEntry[] = [];\n\n for (const descriptor of listeners) {\n const {type, listener, options} = descriptor;\n const entry: EventListenerEntry = [target, descriptor];\n\n target.addEventListener(type, listener, options);\n this.entries.add(entry);\n entries.push(entry);\n }\n\n return function cleanup() {\n for (const [target, {type, listener, options}] of entries) {\n target.removeEventListener(type, listener, options);\n }\n };\n }\n\n public clear = () => {\n for (const entry of this.entries) {\n const [target, {type, listener, options}] = entry;\n\n target.removeEventListener(type, listener, options);\n }\n\n this.entries.clear();\n };\n}\n","export function supportsPopover(element: Element): element is Element & {\n showPopover(): void;\n hidePopover(): void;\n} {\n return (\n 'showPopover' in element &&\n 'hidePopover' in element &&\n typeof element.showPopover === 'function' &&\n typeof element.hidePopover === 'function'\n );\n}\n","import {supportsPopover} from './supportsPopover.ts';\n\nexport function showPopover(element: Element) {\n if (\n supportsPopover(element) &&\n element.isConnected &&\n element.hasAttribute('popover')\n ) {\n element.showPopover();\n }\n}\n","import {canUseDOM} from '../execution-context/canUseDOM.ts';\nimport {getDocument} from '../execution-context/getDocument.ts';\n\nexport function isDocumentScrollingElement(element: Element | null) {\n if (!canUseDOM || !element) {\n return false;\n }\n\n return element === getDocument(element).scrollingElement;\n}\n","import {getBoundingRectangle} from '../bounding-rectangle/getBoundingRectangle.ts';\nimport {getViewportBoundingRectangle} from '../bounding-rectangle/getViewportBoundingRectangle.ts';\nimport {isDocumentScrollingElement} from './documentScrollingElement.ts';\n\nexport function getScrollPosition(scrollableElement: Element) {\n const rect = isDocumentScrollingElement(scrollableElement)\n ? getViewportBoundingRectangle(scrollableElement)\n : getBoundingRectangle(scrollableElement);\n\n const dimensions = isDocumentScrollingElement(scrollableElement)\n ? {\n height: window.innerHeight,\n width: window.innerWidth,\n }\n : {\n height: scrollableElement.clientHeight,\n width: scrollableElement.clientWidth,\n };\n const position = {\n current: {\n x: scrollableElement.scrollLeft,\n y: scrollableElement.scrollTop,\n },\n max: {\n x: scrollableElement.scrollWidth - dimensions.width,\n y: scrollableElement.scrollHeight - dimensions.height,\n },\n };\n\n const isTop = position.current.y <= 0;\n const isLeft = position.current.x <= 0;\n const isBottom = position.current.y >= position.max.y;\n const isRight = position.current.x >= position.max.x;\n\n return {\n rect,\n position,\n isTop,\n isLeft,\n isBottom,\n isRight,\n };\n}\n","import type {Coordinates} from '@dnd-kit/geometry';\n\nimport {getScrollPosition} from './getScrollPosition.ts';\n\nexport function canScroll(scrollableElement: Element, by?: Coordinates) {\n const {isTop, isBottom, isLeft, isRight, position} =\n getScrollPosition(scrollableElement);\n\n const {x, y} = by ?? {x: 0, y: 0};\n\n const top = !isTop && position.current.y + y > 0;\n const bottom = !isBottom && position.current.y + y < position.max.y;\n const left = !isLeft && position.current.x + x > 0;\n const right = !isRight && position.current.x + x < position.max.x;\n\n return {\n top,\n bottom,\n left,\n right,\n x: left || right,\n y: top || bottom,\n };\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\n\nexport function isSVGElement(node: Node): node is SVGElement {\n return node instanceof getWindow(node).SVGElement;\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\n\nexport function getComputedStyles(element: Element) {\n return getWindow(element).getComputedStyle(element);\n}\n","import {getComputedStyles} from '../styles/getComputedStyles.ts';\n\nexport function isFixed(\n node: Element,\n computedStyle: CSSStyleDeclaration = getComputedStyles(node)\n): boolean {\n return (\n computedStyle.position === 'fixed' || computedStyle.position === 'sticky'\n );\n}\n","import {getComputedStyles} from '../styles/getComputedStyles.ts';\n\nexport function isScrollable(\n element: HTMLElement,\n computedStyle: CSSStyleDeclaration = getComputedStyles(element)\n): boolean {\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = ['overflow', 'overflowX', 'overflowY'];\n\n return (\n properties.find((property) => {\n const value = computedStyle[property as keyof CSSStyleDeclaration];\n\n return typeof value === 'string' ? overflowRegex.test(value) : false;\n }) != null\n );\n}\n","import {getWindow} from '../execution-context/getWindow.ts';\nimport {isDocument} from '../type-guards/isDocument.ts';\nimport {isHTMLElement} from '../type-guards/isHTMLElement.ts';\nimport {isSVGElement} from '../type-guards/isSVGElement.ts';\nimport {getComputedStyles} from '../styles/getComputedStyles.ts';\nimport {isFixed} from './isFixed.ts';\nimport {isScrollable} from './isScrollable.ts';\n\ninterface Options {\n limit?: number;\n excludeElement?: boolean;\n}\n\nconst defaultOptions: Options = {\n excludeElement: true,\n};\n\nexport function getScrollableAncestors(\n element: Node | null,\n options: Options = defaultOptions\n): Set<Element> {\n const {limit, excludeElement} = options;\n const scrollParents = new Set<Element>();\n\n function findScrollableAncestors(node: Node | null): Set<Element> {\n if (limit != null && scrollParents.size >= limit) {\n return scrollParents;\n }\n\n if (!node) {\n return scrollParents;\n }\n\n if (\n isDocument(node) &&\n node.scrollingElement != null &&\n !scrollParents.has(node.scrollingElement)\n ) {\n scrollParents.add(node.scrollingElement);\n\n return scrollParents;\n }\n\n if (!isHTMLElement(node)) {\n if (isSVGElement(node)) {\n return findScrollableAncestors(node.parentElement);\n }\n\n return scrollParents;\n }\n\n if (scrollParents.has(node)) {\n return scrollParents;\n }\n\n const computedStyle = getComputedStyles(node);\n\n if (excludeElement && node === element) {\n // no-op\n } else if (isScrollable(node, computedStyle)) {\n scrollParents.add(node);\n }\n\n if (isFixed(node, computedStyle)) {\n const {scrollingElement} = node.ownerDocument;\n\n if (scrollingElement) scrollParents.add(scrollingElement);\n\n return scrollParents;\n }\n\n return findScrollableAncestors(node.parentNode);\n }\n\n if (!element) {\n return scrollParents;\n }\n\n return findScrollableAncestors(element);\n}\n\nexport function getFirstScrollableAncestor(node: Node | null): Element | null {\n const [firstScrollableAncestor] = getScrollableAncestors(node, {limit: 1});\n\n return firstScrollableAncestor ?? null;\n}\n","import type {Axis, Coordinates} from '@dnd-kit/geometry';\n\nimport {getScrollPosition} from './getScrollPosition.ts';\n\nexport enum ScrollDirection {\n Idle = 0,\n Forward = 1,\n Reverse = -1,\n}\n\nconst defaultThreshold: Record<Axis, number> = {\n x: 0.2,\n y: 0.2,\n};\n\nconst defaultTolerance: Record<Axis, number> = {\n x: 10,\n y: 10,\n};\n\ninterface ScrollIntent {\n x: ScrollDirection;\n y: ScrollDirection;\n}\n\nexport function detectScrollIntent(\n scrollableElement: Element,\n coordinates: Coordinates,\n intent?: ScrollIntent,\n acceleration = 25,\n thresholdPercentage = defaultThreshold,\n tolerance = defaultTolerance\n) {\n const {\n rect: scrollContainerRect,\n isTop,\n isBottom,\n isLeft,\n isRight,\n } = getScrollPosition(scrollableElement);\n\n const direction: Record<Axis, ScrollDirection> = {\n x: ScrollDirection.Idle,\n y: ScrollDirection.Idle,\n };\n const speed = {\n x: 0,\n y: 0,\n };\n const threshold = {\n height: scrollContainerRect.height * thresholdPercentage.y,\n width: scrollContainerRect.width * thresholdPercentage.x,\n };\n\n if (\n !isTop &&\n coordinates.y <= scrollContainerRect.top + threshold.height &&\n intent?.y !== ScrollDirection.Forward &&\n coordinates.x >= scrollContainerRect.left - tolerance.x &&\n coordinates.x <= scrollContainerRect.right + tolerance.x\n ) {\n // Scroll Up\n direction.y = ScrollDirection.Reverse;\n speed.y =\n acceleration *\n Math.abs(\n (scrollContainerRect.top + threshold.height - coordinates.y) /\n threshold.height\n );\n } else if (\n !isBottom &&\n coordinates.y >= scrollContainerRect.bottom - threshold.height &&\n intent?.y !== ScrollDirection.Reverse &&\n coordinates.x >= scrollContainerRect.left - tolerance.x &&\n coordinates.x <= scrollContainerRect.right + tolerance.x\n ) {\n // Scroll Down\n direction.y = ScrollDirection.Forward;\n speed.y =\n acceleration *\n Math.abs(\n (scrollContainerRect.bottom - threshold.height - coordinates.y) /\n threshold.height\n );\n }\n\n if (\n !isRight &&\n coordinates.x >= scrollContainerRect.right - threshold.width &&\n intent?.x !== ScrollDirection.Reverse &&\n coordinates.y >= scrollContainerRect.top - tolerance.y &&\n coordinates.y <= scrollContainerRect.bottom + tolerance.y\n ) {\n // Scroll Right\n direction.x = ScrollDirection.Forward;\n speed.x =\n acceleration *\n Math.abs(\n (scrollContainerRect.right - threshold.width - coordinates.x) /\n threshold.width\n );\n } else if (\n !isLeft &&\n coordinates.x <= scrollContainerRect.left + threshold.width &&\n intent?.x !== ScrollDirection.Forward &&\n coordinates.y >= scrollContainerRect.top - tolerance.y &&\n coordinates.y <= scrollContainerRect.bottom + tolerance.y\n ) {\n // Scroll Left\n direction.x = ScrollDirection.Reverse;\n speed.x =\n acceleration *\n Math.abs(\n (scrollContainerRect.left + threshold.width - coordinates.x) /\n threshold.width\n );\n }\n\n return {\n direction,\n speed,\n };\n}\n","import {getComputedStyles} from '../styles/getComputedStyles.ts';\nimport {getScrollableAncestors} from './getScrollableAncestors.ts';\n\nfunction supportsScrollIntoViewIfNeeded(\n element: Element\n): element is Element & {\n scrollIntoViewIfNeeded: (centerIfNeeded?: boolean) => void;\n} {\n return (\n 'scrollIntoViewIfNeeded' in element &&\n typeof element.scrollIntoViewIfNeeded === 'function'\n );\n}\n\nexport function scrollIntoViewIfNeeded(el: Element, centerIfNeeded = false) {\n if (supportsScrollIntoViewIfNeeded(el)) {\n el.scrollIntoViewIfNeeded(centerIfNeeded);\n return;\n }\n\n if (!(el instanceof HTMLElement)) {\n return el.scrollIntoView();\n }\n\n var [parent] = getScrollableAncestors(el, {limit: 1});\n\n if (!(parent instanceof HTMLElement)) {\n return;\n }\n\n const parentComputedStyle = getComputedStyles(parent),\n parentBorderTopWidth = parseInt(\n parentComputedStyle.getPropertyValue('border-top-width')\n ),\n parentBorderLeftWidth = parseInt(\n parentComputedStyle.getPropertyValue('border-left-width')\n ),\n overTop = el.offsetTop - parent.offsetTop < parent.scrollTop,\n overBottom =\n el.offsetTop - parent.offsetTop + el.clientHeight - parentBorderTopWidth >\n parent.scrollTop + parent.clientHeight,\n overLeft = el.offsetLeft - parent.offsetLeft < parent.scrollLeft,\n overRight =\n el.offsetLeft -\n parent.offsetLeft +\n el.clientWidth -\n parentBorderLeftWidth >\n parent.scrollLeft + parent.clientWidth,\n alignWithTop = overTop && !overBottom;\n\n if ((overTop || overBottom) && centerIfNeeded) {\n parent.scrollTop =\n el.offsetTop -\n parent.offsetTop -\n parent.clientHeight / 2 -\n parentBorderTopWidth +\n el.clientHeight / 2;\n }\n\n if ((overLeft || overRight) && centerIfNeeded) {\n parent.scrollLeft =\n el.offsetLeft -\n parent.offsetLeft -\n parent.clientWidth / 2 -\n parentBorderLeftWidth +\n el.clientWidth / 2;\n }\n\n if ((overTop || overBottom || overLeft || overRight) && !centerIfNeeded) {\n el.scrollIntoView(alignWithTop);\n }\n}\n","export class Scheduler {\n private animationFrame: number | undefined;\n private tasks: Set<() => void> = new Set();\n\n public schedule(task: () => void) {\n this.tasks.add(task);\n\n if (!this.animationFrame) {\n this.animationFrame = requestAnimationFrame(this.flush);\n }\n }\n\n public flush = () => {\n const tasks = this.tasks;\n\n this.animationFrame = undefined;\n this.tasks = new Set();\n\n for (const task of tasks) {\n task();\n }\n };\n}\n\nexport const scheduler = new Scheduler();\n","export function timeout(callback: () => void, duration: number): () => void {\n const id = setTimeout(callback, duration);\n\n return () => clearTimeout(id);\n}\n","import {Rectangle} from '@dnd-kit/geometry';\n\nimport {inverseTransform} from '../transform/inverseTransform.ts';\nimport {getBoundingRectangle} from '../bounding-rectangle/getBoundingRectangle.ts';\nimport {getComputedStyles} from '../styles/getComputedStyles.ts';\nimport {parseTransform, type Transform} from '../transform/index.ts';\nimport {getFinalKeyframe} from '../keyframes/getFinalKeyframe.ts';\n\nexport class DOMRectangle extends Rectangle {\n constructor(element: Element, ignoreTransforms = false) {\n let {top, left, right, bottom, width, height} =\n getBoundingRectangle(element);\n const computedStyles = getComputedStyles(element);\n const parsedTransform = parseTransform(computedStyles);\n const scale = {\n x: parsedTransform?.scaleX ?? 1,\n y: parsedTransform?.scaleY ?? 1,\n };\n const projectedTransform = getProjectedTransform(element);\n\n if (parsedTransform && (ignoreTransforms || projectedTransform)) {\n const updated = inverseTransform(\n {top, left, right, bottom, width, height},\n parsedTransform,\n computedStyles.transformOrigin\n );\n\n top = updated.top;\n left = updated.left;\n width = updated.width;\n height = updated.height;\n }\n\n if (projectedTransform && !ignoreTransforms) {\n top = top + projectedTransform.y;\n left = left + projectedTransform.x;\n width = width * projectedTransform.scaleX;\n height = height * projectedTransform.scaleY;\n scale.x = projectedTransform.scaleX;\n scale.y = projectedTransform.scaleY;\n }\n\n super(left, top, width, height);\n\n this.scale = scale;\n }\n}\n\n/*\n * Get the projected transform of an element based on its final keyframe\n */\nfunction getProjectedTransform(element: Element): Transform | null {\n const keyframe = getFinalKeyframe(element);\n\n if (keyframe) {\n const {transform = '', translate = '', scale = ''} = keyframe;\n\n if (transform || translate || scale) {\n return parseTransform({\n transform: typeof transform === 'string' ? transform : '',\n translate: typeof translate === 'string' ? translate : '',\n scale: typeof scale === 'string' ? scale : '',\n });\n }\n }\n\n return null;\n}\n","import type {BoundingRectangle} from '@dnd-kit/geometry';\n\nimport {type Transform} from './parseTransform.ts';\n\nexport function inverseTransform(\n rect: BoundingRectangle,\n parsedTransform: Transform,\n transformOrigin: string\n): BoundingRectangle {\n const {scaleX, scaleY, x: translateX, y: translateY} = parsedTransform;\n const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y =\n rect.top -\n translateY -\n (1 - scaleY) *\n parseFloat(transformOrigin.slice(transformOrigin.indexOf(' ') + 1));\n const w = scaleX ? rect.width / scaleX : rect.width;\n const h = scaleY ? rect.height / scaleY : rect.height;\n\n return {\n width: w,\n height: h,\n top: y,\n right: x + w,\n bottom: y + h,\n left: x,\n };\n}\n","import {supportsStyle} from '../type-guards/supportsStyle.ts';\n\ntype ExtractStringProperties<T> = {\n [K in keyof T]?: T[K] extends string ? string : never;\n};\n\nexport type StyleDeclaration = ExtractStringProperties<CSSStyleDeclaration> & {\n viewTransitionName?: string;\n};\n\nexport class Styles {\n private initial = new Map<string, string>();\n\n constructor(private element: Element) {}\n\n public set(properties: Record<string, string | number>, prefix = '') {\n const {element} = this;\n\n if (!supportsStyle(element)) {\n return;\n }\n\n for (const [key, value] of Object.entries(properties)) {\n const property = `${prefix}${key}`;\n\n if (!this.initial.has(property)) {\n this.initial.set(property, element.style.getPropertyValue(property));\n }\n\n element.style.setProperty(\n property,\n typeof value === 'string' ? value : `${value}px`\n );\n }\n }\n\n public remove(properties: string[], prefix = '') {\n const {element} = this;\n\n if (!supportsStyle(element)) {\n return;\n }\n\n for (const key of properties) {\n const property = `${prefix}${key}`;\n\n element.style.removeProperty(property);\n }\n }\n\n public reset() {\n const {element} = this;\n\n if (!supportsStyle(element)) {\n return;\n }\n\n for (const [key, value] of this.initial) {\n element.style.setProperty(key, value);\n }\n\n if (element.getAttribute('style') === '') {\n element.removeAttribute('style');\n }\n }\n}\n","import {Styles} from '../styles/index.ts';\nimport {getComputedStyles} from '../styles/getComputedStyles.ts';\n\ninterface Arguments {\n element: Element;\n keyframes: PropertyIndexedKeyframes | Keyframe[];\n options: KeyframeAnimationOptions;\n onReady?(): void;\n onFinish?(): void;\n}\nexport function animateTransform({\n element,\n keyframes,\n options,\n onReady,\n onFinish,\n}: Arguments) {\n const styles = new Styles(element);\n const {transitionProperty} = getComputedStyles(element);\n\n const properties = transitionProperty.split(', ');\n\n styles.set({\n 'transition-property': properties.length\n ? properties\n .filter(\n (property) =>\n !property.includes('transform') && !property.includes('translate')\n )\n .join(', ')\n : 'none',\n });\n\n onReady?.();\n\n element.animate(keyframes, options).finished.then(() => {\n onFinish?.();\n styles.reset();\n });\n}\n","export function getFinalKeyframe(element: Element): Keyframe | null {\n const animations = element.getAnimations();\n\n if (animations.length > 0) {\n const [animation] = animations;\n const {effect} = animation;\n const keyframes =\n effect instanceof KeyframeEffect ? effect.getKeyframes() : [];\n\n if (keyframes.length > 0) {\n return keyframes?.[keyframes.length - 1];\n }\n }\n\n return null;\n}\n","export function parseTranslate(translate: string) {\n if (translate === 'none') {\n return null;\n }\n\n const [x, y, z = '0'] = translate.split(' ');\n const output = {x: parseFloat(x), y: parseFloat(y), z: parseInt(z, 10)};\n\n if (isNaN(output.x) && isNaN(output.y)) {\n return null;\n }\n\n return {\n x: isNaN(output.x) ? 0 : output.x,\n y: isNaN(output.y) ? 0 : output.y,\n z: isNaN(output.z) ? 0 : output.z,\n };\n}\n","import {getFinalKeyframe} from '../keyframes/getFinalKeyframe.ts';\nimport {getComputedStyles} from '../styles/getComputedStyles.ts';\nimport {parseTranslate} from './parseTranslate.ts';\n\nexport function computeTranslate(element: Element): {\n x: number;\n y: number;\n z: number;\n} {\n const keyframe = getFinalKeyframe(element);\n\n if (keyframe) {\n const {translate = ''} = keyframe;\n\n if (typeof translate === 'string') {\n const finalTranslate = parseTranslate(translate);\n\n if (finalTranslate) {\n return finalTranslate;\n }\n }\n }\n\n const {translate} = getComputedStyles(element);\n\n if (translate) {\n const finalTranslate = parseTranslate(translate);\n\n if (finalTranslate) {\n return finalTranslate;\n }\n }\n\n return {x: 0, y: 0, z: 0};\n}\n","export function parseScale(scale: string) {\n if (scale === 'none') {\n return null;\n }\n\n const values = scale.split(' ');\n const x = parseFloat(values[0]);\n const y = parseFloat(values[1]);\n\n if (isNaN(x) && isNaN(y)) {\n return null;\n }\n\n return {\n x: isNaN(x) ? y : x,\n y: isNaN(y) ? x : y,\n };\n}\n","import type {Coordinates} from '@dnd-kit/geometry';\n\nimport {parseScale} from './parseScale.ts';\nimport {parseTranslate} from './parseTranslate.ts';\n\nexport interface Transform extends Coordinates {\n z?: number;\n scaleX: number;\n scaleY: number;\n}\n\nexport function parseTransform(computedStyles: {\n scale: string;\n transform: string;\n translate: string;\n}): Transform | null {\n const {scale, transform, translate} = computedStyles;\n const parsedScale = parseScale(scale);\n const parsedTranslate = parseTranslate(translate);\n const parsedMatrix = parseTransformMatrix(transform);\n\n if (!parsedMatrix && !parsedScale && !parsedTranslate) {\n return null;\n }\n\n const normalizedScale = {\n x: parsedScale?.x ?? 1,\n y: parsedScale?.y ?? 1,\n };\n\n const normalizedTranslate = {\n x: parsedTranslate?.x ?? 0,\n y: parsedTranslate?.y ?? 0,\n };\n\n const normalizedMatrix = {\n x: parsedMatrix?.x ?? 0,\n y: parsedMatrix?.y ?? 0,\n scaleX: parsedMatrix?.scaleX ?? 1,\n scaleY: parsedMatrix?.scaleY ?? 1,\n };\n\n return {\n x: normalizedTranslate.x + normalizedMatrix.x,\n y: normalizedTranslate.y + normalizedMatrix.y,\n z: parsedTranslate?.z ?? 0,\n scaleX: normalizedScale.x * normalizedMatrix.scaleX,\n scaleY: normalizedScale.y * normalizedMatrix.scaleY,\n };\n}\n\nfunction parseTransformMatrix(transform: string) {\n if (transform.startsWith('matrix3d(')) {\n const transformArray = transform.slice(9, -1).split(/, /);\n\n return {\n x: +transformArray[12],\n y: +transformArray[13],\n scaleX: +transformArray[0],\n scaleY: +transformArray[5],\n };\n } else if (transform.startsWith('matrix(')) {\n const transformArray = transform.slice(7, -1).split(/, /);\n\n return {\n x: +transformArray[4],\n y: +transformArray[5],\n scaleX: +transformArray[0],\n scaleY: +transformArray[3],\n };\n }\n\n return null;\n}\n","import type {Transform} from './parseTransform.ts';\n\nexport function stringifyTransform({x, y, z, scaleX, scaleY}: Transform) {\n return `translate3d(${x}px, ${y}px, ${z ?? 0}) scale(${scaleX}, ${scaleY})`;\n}\n","export function isKeyboardEvent(\n event: Event | null | undefined\n): event is KeyboardEvent {\n return event instanceof KeyboardEvent;\n}\n","interface ViewTransition {\n ready: Promise<void>;\n updateCallbackDone: Promise<void>;\n finished: Promise<void>;\n skipTransition(): void;\n}\n\nexport function supportsViewTransition(\n document: Document\n): document is Document & {\n startViewTransition(updateCallback: () => void): ViewTransition;\n} {\n return 'startViewTransition' in document;\n}\n"]}
package/utilities.js CHANGED
@@ -23,6 +23,7 @@ function isNode(node) {
23
23
 
24
24
  // src/utilities/execution-context/getWindow.ts
25
25
  function getWindow(target) {
26
+ var _a, _b;
26
27
  if (!target) {
27
28
  return window;
28
29
  }
@@ -32,7 +33,7 @@ function getWindow(target) {
32
33
  if (!isNode(target)) {
33
34
  return window;
34
35
  }
35
- return target.ownerDocument?.defaultView ?? window;
36
+ return (_b = (_a = target.ownerDocument) == null ? void 0 : _a.defaultView) != null ? _b : window;
36
37
  }
37
38
 
38
39
  // src/utilities/type-guards/isDocument.ts
@@ -102,7 +103,7 @@ function cloneElement(element) {
102
103
  }
103
104
  if (field instanceof HTMLCanvasElement && originalField instanceof HTMLCanvasElement && originalField.width > 0 && originalField.height > 0) {
104
105
  const destCtx = field.getContext("2d");
105
- destCtx?.drawImage(originalField, 0, 0);
106
+ destCtx == null ? void 0 : destCtx.drawImage(originalField, 0, 0);
106
107
  }
107
108
  });
108
109
  return clonedElement;
@@ -222,7 +223,7 @@ function getScrollPosition(scrollableElement) {
222
223
  // src/utilities/scroll/canScroll.ts
223
224
  function canScroll(scrollableElement, by) {
224
225
  const { isTop, isBottom, isLeft, isRight, position } = getScrollPosition(scrollableElement);
225
- const { x, y } = by ?? { x: 0, y: 0 };
226
+ const { x, y } = by != null ? by : { x: 0, y: 0 };
226
227
  const top = !isTop && position.current.y + y > 0;
227
228
  const bottom = !isBottom && position.current.y + y < position.max.y;
228
229
  const left = !isLeft && position.current.x + x > 0;
@@ -295,8 +296,7 @@ function getScrollableAncestors(element, options = defaultOptions) {
295
296
  }
296
297
  if (isFixed(node, computedStyle)) {
297
298
  const { scrollingElement } = node.ownerDocument;
298
- if (scrollingElement)
299
- scrollParents.add(scrollingElement);
299
+ if (scrollingElement) scrollParents.add(scrollingElement);
300
300
  return scrollParents;
301
301
  }
302
302
  return findScrollableAncestors(node.parentNode);
@@ -308,7 +308,7 @@ function getScrollableAncestors(element, options = defaultOptions) {
308
308
  }
309
309
  function getFirstScrollableAncestor(node) {
310
310
  const [firstScrollableAncestor] = getScrollableAncestors(node, { limit: 1 });
311
- return firstScrollableAncestor ?? null;
311
+ return firstScrollableAncestor != null ? firstScrollableAncestor : null;
312
312
  }
313
313
 
314
314
  // src/utilities/scroll/detectScrollIntent.ts
@@ -346,23 +346,23 @@ function detectScrollIntent(scrollableElement, coordinates, intent, acceleration
346
346
  height: scrollContainerRect.height * thresholdPercentage.y,
347
347
  width: scrollContainerRect.width * thresholdPercentage.x
348
348
  };
349
- if (!isTop && coordinates.y <= scrollContainerRect.top + threshold.height && intent?.y !== 1 /* Forward */ && coordinates.x >= scrollContainerRect.left - tolerance.x && coordinates.x <= scrollContainerRect.right + tolerance.x) {
349
+ if (!isTop && coordinates.y <= scrollContainerRect.top + threshold.height && (intent == null ? void 0 : intent.y) !== 1 /* Forward */ && coordinates.x >= scrollContainerRect.left - tolerance.x && coordinates.x <= scrollContainerRect.right + tolerance.x) {
350
350
  direction.y = -1 /* Reverse */;
351
351
  speed.y = acceleration * Math.abs(
352
352
  (scrollContainerRect.top + threshold.height - coordinates.y) / threshold.height
353
353
  );
354
- } else if (!isBottom && coordinates.y >= scrollContainerRect.bottom - threshold.height && intent?.y !== -1 /* Reverse */ && coordinates.x >= scrollContainerRect.left - tolerance.x && coordinates.x <= scrollContainerRect.right + tolerance.x) {
354
+ } else if (!isBottom && coordinates.y >= scrollContainerRect.bottom - threshold.height && (intent == null ? void 0 : intent.y) !== -1 /* Reverse */ && coordinates.x >= scrollContainerRect.left - tolerance.x && coordinates.x <= scrollContainerRect.right + tolerance.x) {
355
355
  direction.y = 1 /* Forward */;
356
356
  speed.y = acceleration * Math.abs(
357
357
  (scrollContainerRect.bottom - threshold.height - coordinates.y) / threshold.height
358
358
  );
359
359
  }
360
- if (!isRight && coordinates.x >= scrollContainerRect.right - threshold.width && intent?.x !== -1 /* Reverse */ && coordinates.y >= scrollContainerRect.top - tolerance.y && coordinates.y <= scrollContainerRect.bottom + tolerance.y) {
360
+ if (!isRight && coordinates.x >= scrollContainerRect.right - threshold.width && (intent == null ? void 0 : intent.x) !== -1 /* Reverse */ && coordinates.y >= scrollContainerRect.top - tolerance.y && coordinates.y <= scrollContainerRect.bottom + tolerance.y) {
361
361
  direction.x = 1 /* Forward */;
362
362
  speed.x = acceleration * Math.abs(
363
363
  (scrollContainerRect.right - threshold.width - coordinates.x) / threshold.width
364
364
  );
365
- } else if (!isLeft && coordinates.x <= scrollContainerRect.left + threshold.width && intent?.x !== 1 /* Forward */ && coordinates.y >= scrollContainerRect.top - tolerance.y && coordinates.y <= scrollContainerRect.bottom + tolerance.y) {
365
+ } else if (!isLeft && coordinates.x <= scrollContainerRect.left + threshold.width && (intent == null ? void 0 : intent.x) !== 1 /* Forward */ && coordinates.y >= scrollContainerRect.top - tolerance.y && coordinates.y <= scrollContainerRect.bottom + tolerance.y) {
366
366
  direction.x = -1 /* Reverse */;
367
367
  speed.x = acceleration * Math.abs(
368
368
  (scrollContainerRect.left + threshold.width - coordinates.x) / threshold.width
@@ -513,9 +513,9 @@ function animateTransform({
513
513
  (property) => !property.includes("transform") && !property.includes("translate")
514
514
  ).join(", ") : "none"
515
515
  });
516
- onReady?.();
516
+ onReady == null ? void 0 : onReady();
517
517
  element.animate(keyframes, options).finished.then(() => {
518
- onFinish?.();
518
+ onFinish == null ? void 0 : onFinish();
519
519
  styles.reset();
520
520
  });
521
521
  }
@@ -528,7 +528,7 @@ function getFinalKeyframe(element) {
528
528
  const { effect } = animation;
529
529
  const keyframes = effect instanceof KeyframeEffect ? effect.getKeyframes() : [];
530
530
  if (keyframes.length > 0) {
531
- return keyframes?.[keyframes.length - 1];
531
+ return keyframes == null ? void 0 : keyframes[keyframes.length - 1];
532
532
  }
533
533
  }
534
534
  return null;
@@ -592,6 +592,7 @@ function parseScale(scale) {
592
592
 
593
593
  // src/utilities/transform/parseTransform.ts
594
594
  function parseTransform(computedStyles) {
595
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i;
595
596
  const { scale, transform, translate } = computedStyles;
596
597
  const parsedScale = parseScale(scale);
597
598
  const parsedTranslate = parseTranslate(translate);
@@ -600,23 +601,23 @@ function parseTransform(computedStyles) {
600
601
  return null;
601
602
  }
602
603
  const normalizedScale = {
603
- x: parsedScale?.x ?? 1,
604
- y: parsedScale?.y ?? 1
604
+ x: (_a = parsedScale == null ? void 0 : parsedScale.x) != null ? _a : 1,
605
+ y: (_b = parsedScale == null ? void 0 : parsedScale.y) != null ? _b : 1
605
606
  };
606
607
  const normalizedTranslate = {
607
- x: parsedTranslate?.x ?? 0,
608
- y: parsedTranslate?.y ?? 0
608
+ x: (_c = parsedTranslate == null ? void 0 : parsedTranslate.x) != null ? _c : 0,
609
+ y: (_d = parsedTranslate == null ? void 0 : parsedTranslate.y) != null ? _d : 0
609
610
  };
610
611
  const normalizedMatrix = {
611
- x: parsedMatrix?.x ?? 0,
612
- y: parsedMatrix?.y ?? 0,
613
- scaleX: parsedMatrix?.scaleX ?? 1,
614
- scaleY: parsedMatrix?.scaleY ?? 1
612
+ x: (_e = parsedMatrix == null ? void 0 : parsedMatrix.x) != null ? _e : 0,
613
+ y: (_f = parsedMatrix == null ? void 0 : parsedMatrix.y) != null ? _f : 0,
614
+ scaleX: (_g = parsedMatrix == null ? void 0 : parsedMatrix.scaleX) != null ? _g : 1,
615
+ scaleY: (_h = parsedMatrix == null ? void 0 : parsedMatrix.scaleY) != null ? _h : 1
615
616
  };
616
617
  return {
617
618
  x: normalizedTranslate.x + normalizedMatrix.x,
618
619
  y: normalizedTranslate.y + normalizedMatrix.y,
619
- z: parsedTranslate?.z ?? 0,
620
+ z: (_i = parsedTranslate == null ? void 0 : parsedTranslate.z) != null ? _i : 0,
620
621
  scaleX: normalizedScale.x * normalizedMatrix.scaleX,
621
622
  scaleY: normalizedScale.y * normalizedMatrix.scaleY
622
623
  };
@@ -644,18 +645,19 @@ function parseTransformMatrix(transform) {
644
645
 
645
646
  // src/utilities/transform/stringifyTransform.ts
646
647
  function stringifyTransform({ x, y, z, scaleX, scaleY }) {
647
- return `translate3d(${x}px, ${y}px, ${z ?? 0}) scale(${scaleX}, ${scaleY})`;
648
+ return `translate3d(${x}px, ${y}px, ${z != null ? z : 0}) scale(${scaleX}, ${scaleY})`;
648
649
  }
649
650
 
650
651
  // src/utilities/shapes/DOMRectangle.ts
651
652
  var DOMRectangle = class extends Rectangle {
652
653
  constructor(element, ignoreTransforms = false) {
654
+ var _a, _b;
653
655
  let { top, left, right, bottom, width, height } = getBoundingRectangle(element);
654
656
  const computedStyles = getComputedStyles(element);
655
657
  const parsedTransform = parseTransform(computedStyles);
656
658
  const scale = {
657
- x: parsedTransform?.scaleX ?? 1,
658
- y: parsedTransform?.scaleY ?? 1
659
+ x: (_a = parsedTransform == null ? void 0 : parsedTransform.scaleX) != null ? _a : 1,
660
+ y: (_b = parsedTransform == null ? void 0 : parsedTransform.scaleY) != null ? _b : 1
659
661
  };
660
662
  const projectedTransform = getProjectedTransform(element);
661
663
  if (parsedTransform && (ignoreTransforms || projectedTransform)) {