@lodev09/react-native-true-sheet 3.11.6 → 3.11.8

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.
@@ -1 +1 @@
1
- {"version":3,"names":["React","set","isVertical","DEFAULT_PEEK_HEIGHT","TRANSITIONS","VELOCITY_THRESHOLD","useControllableState","useSnapPoints","activeSnapPointProp","setActiveSnapPointProp","snapPoints","drawerRef","overlayRef","fadeFromIndex","onSnapPointChange","direction","container","snapToSequentialPoint","isOpen","contentHeight","detachedOffset","maxContentHeight","peekHeight","initialAnimated","activeSnapPoint","setActiveSnapPoint","prop","defaultProp","onChange","windowDimensions","setWindowDimensions","useState","window","innerWidth","innerHeight","undefined","useEffect","onResize","addEventListener","removeEventListener","isLastSnapPoint","useMemo","length","activeSnapPointIndex","findIndex","snapPoint","shouldFade","Number","isNaN","snapPointsOffset","containerSize","width","getBoundingClientRect","height","effectiveHeight","Math","max","map","resolved","isPx","snapPointAsNumber","parseInt","rawHeight","ceiling","min","rawWidth","activeSnapPointOffset","setDetachedWrapperTransform","y","animated","current","wrapper","closest","transition","DURATION","EASE","join","transform","hasSnappedRef","useRef","snapToPoint","useCallback","dimension","newSnapPointIndex","snapPointDim","animateThisSnap","opacity","pointerEvents","newIndex","onRelease","draggedDistance","closeDrawer","velocity","dismissible","currentPosition","isOverlaySnapPoint","isFirst","hasDraggedUp","viewportDim","effectiveDim","visibleAtLowest","overshoot","closestSnapPoint","reduce","prev","curr","abs","dim","dragDirection","onDrag","newValue","excess","getPercentageDragged","absDraggedDistance","isDraggingDown","activeOffset","windowDim","dismissOffset","dismissRange","isOverlaySnapPointOrHigher","targetSnapPointIndex","snapPointDistance","percentageDragged"],"sourceRoot":"../../../../src","sources":["web/vaul/use-snap-points.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","set","isVertical","DEFAULT_PEEK_HEIGHT","TRANSITIONS","VELOCITY_THRESHOLD","useControllableState","useSnapPoints","activeSnapPointProp","setActiveSnapPointProp","snapPoints","drawerRef","overlayRef","fadeFromIndex","onSnapPointChange","direction","container","snapToSequentialPoint","isOpen","contentHeight","detachedOffset","maxContentHeight","peekHeight","initialAnimated","activeSnapPoint","setActiveSnapPoint","prop","defaultProp","onChange","windowDimensions","setWindowDimensions","useState","window","innerWidth","innerHeight","undefined","useEffect","onResize","addEventListener","removeEventListener","isLastSnapPoint","useMemo","length","activeSnapPointIndex","findIndex","snapPoint","shouldFade","Number","isNaN","snapPointsOffset","containerSize","width","getBoundingClientRect","height","effectiveHeight","Math","max","map","resolved","isPx","snapPointAsNumber","parseInt","rawHeight","ceiling","min","rawWidth","activeSnapPointOffset","setDetachedWrapperTransform","y","animated","current","wrapper","closest","transition","DURATION","EASE","join","transform","hasSnappedRef","useRef","snapToPoint","useCallback","dimension","newSnapPointIndex","snapPointDim","animateThisSnap","opacity","pointerEvents","newIndex","onRelease","draggedDistance","closeDrawer","velocity","dismissible","currentPosition","isOverlaySnapPoint","isFirst","hasDraggedUp","viewportDim","effectiveDim","visibleAtLowest","overshoot","closestSnapPoint","reduce","prev","curr","abs","dim","dragDirection","onDrag","newValue","excess","getPercentageDragged","absDraggedDistance","isDraggingDown","activeOffset","windowDim","dismissOffset","dismissRange","isOverlaySnapPointOrHigher","targetSnapPointIndex","snapPointDistance","percentageDragged"],"sourceRoot":"../../../../src","sources":["web/vaul/use-snap-points.ts"],"mappings":";;AAAA;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,EAAEC,UAAU,QAAQ,cAAW;AAC3C,SAASC,mBAAmB,EAAEC,WAAW,EAAEC,kBAAkB,QAAQ,gBAAa;AAClF,SAASC,oBAAoB,QAAQ,6BAA0B;AAG/D,OAAO,SAASC,aAAaA,CAAC;EAC5BC,mBAAmB;EACnBC,sBAAsB;EACtBC,UAAU;EACVC,SAAS;EACTC,UAAU;EACVC,aAAa;EACbC,iBAAiB;EACjBC,SAAS,GAAG,QAAQ;EACpBC,SAAS;EACTC,qBAAqB;EACrBC,MAAM;EACNC,aAAa;EACbC,cAAc,GAAG,CAAC;EAClBC,gBAAgB;EAChBC,UAAU;EACVC,eAAe,GAAG;AAkBpB,CAAC,EAAE;EACD,MAAM,CAACC,eAAe,EAAEC,kBAAkB,CAAC,GAAGnB,oBAAoB,CAAyB;IACzFoB,IAAI,EAAElB,mBAAmB;IACzBmB,WAAW,EAAEjB,UAAU,GAAG,CAAC,CAAC;IAC5BkB,QAAQ,EAAEnB;EACZ,CAAC,CAAC;EAEF,MAAM,CAACoB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG9B,KAAK,CAAC+B,QAAQ,CAC5D,OAAOC,MAAM,KAAK,WAAW,GACzB;IACEC,UAAU,EAAED,MAAM,CAACC,UAAU;IAC7BC,WAAW,EAAEF,MAAM,CAACE;EACtB,CAAC,GACDC,SACN,CAAC;EAEDnC,KAAK,CAACoC,SAAS,CAAC,MAAM;IACpB,SAASC,QAAQA,CAAA,EAAG;MAClBP,mBAAmB,CAAC;QAClBG,UAAU,EAAED,MAAM,CAACC,UAAU;QAC7BC,WAAW,EAAEF,MAAM,CAACE;MACtB,CAAC,CAAC;IACJ;IACAF,MAAM,CAACM,gBAAgB,CAAC,QAAQ,EAAED,QAAQ,CAAC;IAE3C,OAAO,MAAML,MAAM,CAACO,mBAAmB,CAAC,QAAQ,EAAEF,QAAQ,CAAC;EAC7D,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,eAAe,GAAGxC,KAAK,CAACyC,OAAO,CACnC,MAAMjB,eAAe,KAAKd,UAAU,GAAGA,UAAU,CAACgC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,EACrE,CAAChC,UAAU,EAAEc,eAAe,CAC9B,CAAC;EAED,MAAMmB,oBAAoB,GAAG3C,KAAK,CAACyC,OAAO,CACxC,MAAM/B,UAAU,EAAEkC,SAAS,CAAEC,SAAS,IAAKA,SAAS,KAAKrB,eAAe,CAAC,IAAI,IAAI,EACjF,CAACd,UAAU,EAAEc,eAAe,CAC9B,CAAC;EAED,MAAMsB,UAAU,GACbpC,UAAU,IACTA,UAAU,CAACgC,MAAM,GAAG,CAAC,KACpB7B,aAAa,IAAIA,aAAa,KAAK,CAAC,CAAC,IACtC,CAACkC,MAAM,CAACC,KAAK,CAACnC,aAAa,CAAC,IAC5BH,UAAU,CAACG,aAAa,CAAC,KAAKW,eAAe,IAC/C,CAACd,UAAU;EAEb,MAAMuC,gBAAgB,GAAGjD,KAAK,CAACyC,OAAO,CAAC,MAAM;IAC3C,MAAMS,aAAa,GAAGlC,SAAS,GAC3B;MACEmC,KAAK,EAAEnC,SAAS,CAACoC,qBAAqB,CAAC,CAAC,CAACD,KAAK;MAC9CE,MAAM,EAAErC,SAAS,CAACoC,qBAAqB,CAAC,CAAC,CAACC;IAC5C,CAAC,GACD,OAAOrB,MAAM,KAAK,WAAW,GAC3B;MAAEmB,KAAK,EAAEnB,MAAM,CAACC,UAAU;MAAEoB,MAAM,EAAErB,MAAM,CAACE;IAAY,CAAC,GACxD;MAAEiB,KAAK,EAAE,CAAC;MAAEE,MAAM,EAAE;IAAE,CAAC;;IAE7B;IACA;IACA;IACA,MAAMC,eAAe,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEN,aAAa,CAACG,MAAM,IAAIjC,cAAc,IAAI,CAAC,CAAC,CAAC;IAEjF,OACEV,UAAU,EAAE+C,GAAG,CAAEZ,SAAS,IAAK;MAC7B;MACA;MACA;MACA;MACA,MAAMa,QAAQ,GACZb,SAAS,KAAK,MAAM,GAChB,GAAG1B,aAAa,IAAIA,aAAa,GAAG,CAAC,GAAGA,aAAa,GAAGmC,eAAe,GAAG,CAAC,IAAI,GAC/ET,SAAS,KAAK,MAAM,GAClB,GAAGvB,UAAU,IAAIA,UAAU,GAAG,CAAC,GAAGA,UAAU,GAAGnB,mBAAmB,IAAI,GACtE0C,SAAS;MACjB,MAAMc,IAAI,GAAG,OAAOD,QAAQ,KAAK,QAAQ;MACzC,IAAIE,iBAAiB,GAAG,CAAC;MAEzB,IAAID,IAAI,EAAE;QACRC,iBAAiB,GAAGC,QAAQ,CAACH,QAAQ,EAAE,EAAE,CAAC;MAC5C;MAEA,IAAIxD,UAAU,CAACa,SAAS,CAAC,EAAE;QACzB,MAAM+C,SAAS,GAAGH,IAAI,GAClBC,iBAAiB,GACjB/B,gBAAgB,GACd6B,QAAQ,GAAGJ,eAAe,GAC1B,CAAC;QACP;QACA;QACA;QACA;QACA;QACA,MAAMS,OAAO,GACX1C,gBAAgB,KAAKc,SAAS,GAC1BoB,IAAI,CAACS,GAAG,CAACV,eAAe,EAAEjC,gBAAgB,CAAC,GAC3CiC,eAAe;QACrB,MAAMD,MAAM,GAAGE,IAAI,CAACS,GAAG,CAACF,SAAS,EAAEC,OAAO,CAAC;QAE3C,IAAIlC,gBAAgB,EAAE;UACpB,OAAOd,SAAS,KAAK,QAAQ,GAAGuC,eAAe,GAAGD,MAAM,GAAG,CAACC,eAAe,GAAGD,MAAM;QACtF;QAEA,OAAOA,MAAM;MACf;MACA,MAAMY,QAAQ,GAAGN,IAAI,GACjBC,iBAAiB,GACjB/B,gBAAgB,GACd6B,QAAQ,GAAGR,aAAa,CAACC,KAAK,GAC9B,CAAC;MACP,MAAMA,KAAK,GAAGI,IAAI,CAACS,GAAG,CAACC,QAAQ,EAAEf,aAAa,CAACC,KAAK,CAAC;MAErD,IAAItB,gBAAgB,EAAE;QACpB,OAAOd,SAAS,KAAK,OAAO,GAAGmC,aAAa,CAACC,KAAK,GAAGA,KAAK,GAAG,CAACD,aAAa,CAACC,KAAK,GAAGA,KAAK;MAC3F;MAEA,OAAOA,KAAK;IACd,CAAC,CAAC,IAAI,EAAE;EAEZ,CAAC,EAAE,CACDzC,UAAU,EACVmB,gBAAgB,EAChBb,SAAS,EACTG,aAAa,EACbC,cAAc,EACdC,gBAAgB,EAChBC,UAAU,CACX,CAAC;EAEF,MAAM4C,qBAAqB,GAAGlE,KAAK,CAACyC,OAAO,CACzC,MAAOE,oBAAoB,KAAK,IAAI,GAAGM,gBAAgB,GAAGN,oBAAoB,CAAC,GAAG,IAAK,EACvF,CAACM,gBAAgB,EAAEN,oBAAoB,CACzC,CAAC;;EAED;EACA;EACA;EACA;EACA,MAAMwB,2BAA2B,GAAGA,CAACC,CAAS,EAAEC,QAAiB,KAAK;IACpE,IAAI,CAAC1D,SAAS,CAAC2D,OAAO,IAAI,CAACpE,UAAU,CAACa,SAAS,CAAC,EAAE;IAClD,MAAMwD,OAAO,GAAG5D,SAAS,CAAC2D,OAAO,CAACE,OAAO,CAAc,8BAA8B,CAAC;IACtF,IAAI,CAACD,OAAO,EAAE;IACdtE,GAAG,CAACsE,OAAO,EAAE;MACXE,UAAU,EAAEJ,QAAQ,GAChB,aAAajE,WAAW,CAACsE,QAAQ,kBAAkBtE,WAAW,CAACuE,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,GAAG,GAChF,MAAM;MACVC,SAAS,EAAE,kBAAkBT,CAAC;IAChC,CAAC,CAAC;EACJ,CAAC;;EAED;EACA;EACA,MAAMU,aAAa,GAAG9E,KAAK,CAAC+E,MAAM,CAAC,KAAK,CAAC;EACzC,MAAMC,WAAW,GAAGhF,KAAK,CAACiF,WAAW,CAClCC,SAAiB,IAAK;IACrB,MAAMC,iBAAiB,GACrBlC,gBAAgB,EAAEL,SAAS,CAAEwC,YAAY,IAAKA,YAAY,KAAKF,SAAS,CAAC,IAAI,IAAI;IACnFpE,iBAAiB,CAACqE,iBAAiB,CAAC;IAEpC,MAAME,eAAe,GAAGP,aAAa,CAACR,OAAO,IAAI/C,eAAe;IAChEuD,aAAa,CAACR,OAAO,GAAG,IAAI;IAC5B;IACA;IACA;IACArE,GAAG,CAACU,SAAS,CAAC2D,OAAO,EAAE;MACrB,YAAY,EAAEe,eAAe,GACzB,aAAajF,WAAW,CAACsE,QAAQ,kBAAkBtE,WAAW,CAACuE,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,0BAA0BxE,WAAW,CAACsE,QAAQ,kBAAkBtE,WAAW,CAACuE,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,GAAG,GAC1K,MAAM;MACV,WAAW,EAAE1E,UAAU,CAACa,SAAS,CAAC,GAC9B,kBAAkBmE,SAAS,QAAQ,GACnC,eAAeA,SAAS,WAAW;MACvC,qBAAqB,EAAE,GAAGA,SAAS;IACrC,CAAC,CAAC;;IAEF;IACAf,2BAA2B,CAAC,CAAC,EAAEkB,eAAe,CAAC;IAE/C,IACEpC,gBAAgB,IAChBkC,iBAAiB,KAAKlC,gBAAgB,CAACP,MAAM,GAAG,CAAC,IACjD7B,aAAa,KAAKsB,SAAS,IAC3BgD,iBAAiB,KAAKtE,aAAa,IACnCsE,iBAAiB,GAAGtE,aAAa,EACjC;MACAZ,GAAG,CAACW,UAAU,CAAC0D,OAAO,EAAE;QACtBG,UAAU,EAAE,WAAWrE,WAAW,CAACsE,QAAQ,kBAAkBtE,WAAW,CAACuE,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,GAAG;QAC1FU,OAAO,EAAE,GAAG;QACZC,aAAa,EAAE;MACjB,CAAC,CAAC;IACJ,CAAC,MAAM;MACLtF,GAAG,CAACW,UAAU,CAAC0D,OAAO,EAAE;QACtBG,UAAU,EAAE,WAAWrE,WAAW,CAACsE,QAAQ,kBAAkBtE,WAAW,CAACuE,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,GAAG;QAC1FU,OAAO,EAAE,GAAG;QACZC,aAAa,EAAE;MACjB,CAAC,CAAC;IACJ;IAEA9D,kBAAkB,CAACf,UAAU,GAAG6C,IAAI,CAACC,GAAG,CAAC2B,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;EAClE,CAAC,EACD,CAACxE,SAAS,CAAC2D,OAAO,EAAE5D,UAAU,EAAEuC,gBAAgB,EAAEpC,aAAa,EAAED,UAAU,EAAEa,kBAAkB,CACjG,CAAC;EAEDzB,KAAK,CAACoC,SAAS,CAAC,MAAM;IACpB,IAAI,CAAClB,MAAM,EAAE;IACb,IAAIM,eAAe,IAAIhB,mBAAmB,EAAE;MAC1C,MAAMgF,QAAQ,GACZ9E,UAAU,EAAEkC,SAAS,CAClBC,SAAS,IAAKA,SAAS,KAAKrC,mBAAmB,IAAIqC,SAAS,KAAKrB,eACpE,CAAC,IAAI,CAAC,CAAC;MACT,IAAIyB,gBAAgB,IAAIuC,QAAQ,KAAK,CAAC,CAAC,IAAI,OAAOvC,gBAAgB,CAACuC,QAAQ,CAAC,KAAK,QAAQ,EAAE;QACzFR,WAAW,CAAC/B,gBAAgB,CAACuC,QAAQ,CAAW,CAAC;MACnD;IACF;EACF,CAAC,EAAE,CAACtE,MAAM,EAAEM,eAAe,EAAEhB,mBAAmB,EAAEE,UAAU,EAAEuC,gBAAgB,EAAE+B,WAAW,CAAC,CAAC;EAE7F,SAASS,SAASA,CAAC;IACjBC,eAAe;IACfC,WAAW;IACXC,QAAQ;IACRC;EAMF,CAAC,EAAE;IACD,IAAIhF,aAAa,KAAKsB,SAAS,EAAE;IAEjC,MAAM2D,eAAe,GACnB/E,SAAS,KAAK,QAAQ,IAAIA,SAAS,KAAK,OAAO,GAC3C,CAACmD,qBAAqB,IAAI,CAAC,IAAIwB,eAAe,GAC9C,CAACxB,qBAAqB,IAAI,CAAC,IAAIwB,eAAe;IACpD,MAAMK,kBAAkB,GAAGpD,oBAAoB,KAAK9B,aAAa,GAAG,CAAC;IACrE,MAAMmF,OAAO,GAAGrD,oBAAoB,KAAK,CAAC;IAC1C,MAAMsD,YAAY,GAAGP,eAAe,GAAG,CAAC;IAExC,IAAIK,kBAAkB,EAAE;MACtB9F,GAAG,CAACW,UAAU,CAAC0D,OAAO,EAAE;QACtBG,UAAU,EAAE,WAAWrE,WAAW,CAACsE,QAAQ,kBAAkBtE,WAAW,CAACuE,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC;MACzF,CAAC,CAAC;IACJ;;IAEA;IACA;IACA;IACA,IACEiB,WAAW,KACV9E,SAAS,KAAK,QAAQ,IAAIA,SAAS,KAAK,OAAO,CAAC,IACjD+E,eAAe,GAAG7C,gBAAgB,CAAC,CAAC,CAAC,EACrC;MACA,MAAMiD,WAAW,GAAGhG,UAAU,CAACa,SAAS,CAAC,GAAGiB,MAAM,CAACE,WAAW,GAAGF,MAAM,CAACC,UAAU;MAClF,MAAMkE,YAAY,GAAG5C,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE0C,WAAW,IAAI9E,cAAc,IAAI,CAAC,CAAC,CAAC;MACrE,MAAMgF,eAAe,GAAG7C,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE2C,YAAY,GAAGlD,gBAAgB,CAAC,CAAC,CAAC,CAAC;MACvE,MAAMoD,SAAS,GAAGP,eAAe,GAAG7C,gBAAgB,CAAC,CAAC,CAAC;MACvD,IAAIoD,SAAS,GAAGD,eAAe,GAAG,GAAG,EAAE;QACrCT,WAAW,CAAC,CAAC;QACb;MACF;IACF;IAEA,IAAI,CAAC1E,qBAAqB,IAAI2E,QAAQ,GAAG,CAAC,IAAI,CAACK,YAAY,EAAE;MAC3D,IAAIJ,WAAW,EAAEF,WAAW,CAAC,CAAC,CAAC,KAC1BX,WAAW,CAAC/B,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MACvC;IACF;IAEA,IAAI,CAAChC,qBAAqB,IAAI2E,QAAQ,GAAG,CAAC,IAAIK,YAAY,IAAIhD,gBAAgB,IAAIvC,UAAU,EAAE;MAC5FsE,WAAW,CAAC/B,gBAAgB,CAACvC,UAAU,CAACgC,MAAM,GAAG,CAAC,CAAW,CAAC;MAC9D;IACF;;IAEA;IACA,MAAM4D,gBAAgB,GAAGrD,gBAAgB,EAAEsD,MAAM,CAAC,CAACC,IAAI,EAAEC,IAAI,KAAK;MAChE,IAAI,OAAOD,IAAI,KAAK,QAAQ,IAAI,OAAOC,IAAI,KAAK,QAAQ,EAAE,OAAOD,IAAI;MAErE,OAAOjD,IAAI,CAACmD,GAAG,CAACD,IAAI,GAAGX,eAAe,CAAC,GAAGvC,IAAI,CAACmD,GAAG,CAACF,IAAI,GAAGV,eAAe,CAAC,GAAGW,IAAI,GAAGD,IAAI;IAC1F,CAAC,CAAC;IAEF,MAAMG,GAAG,GAAGzG,UAAU,CAACa,SAAS,CAAC,GAAGiB,MAAM,CAACE,WAAW,GAAGF,MAAM,CAACC,UAAU;IAC1E,IAAI2D,QAAQ,GAAGvF,kBAAkB,IAAIkD,IAAI,CAACmD,GAAG,CAAChB,eAAe,CAAC,GAAGiB,GAAG,GAAG,GAAG,EAAE;MAC1E,MAAMC,aAAa,GAAGX,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;MAE7C;MACA,IAAIW,aAAa,GAAG,CAAC,IAAIpE,eAAe,IAAI9B,UAAU,EAAE;QACtDsE,WAAW,CAAC/B,gBAAgB,CAACvC,UAAU,CAACgC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpD;MACF;MAEA,IAAIsD,OAAO,IAAIY,aAAa,GAAG,CAAC,IAAIf,WAAW,EAAE;QAC/CF,WAAW,CAAC,CAAC;MACf;MAEA,IAAIhD,oBAAoB,KAAK,IAAI,EAAE;MAEnCqC,WAAW,CAAC/B,gBAAgB,CAACN,oBAAoB,GAAGiE,aAAa,CAAC,CAAC;MACnE;IACF;IAEA5B,WAAW,CAACsB,gBAAgB,CAAC;EAC/B;EAEA,SAASO,MAAMA,CAAC;IAAEnB;EAA6C,CAAC,EAAE;IAChE,IAAIxB,qBAAqB,KAAK,IAAI,EAAE;IACpC,MAAM4C,QAAQ,GACZ/F,SAAS,KAAK,QAAQ,IAAIA,SAAS,KAAK,OAAO,GAC3CmD,qBAAqB,GAAGwB,eAAe,GACvCxB,qBAAqB,GAAGwB,eAAe;;IAE7C;IACA,IACE,CAAC3E,SAAS,KAAK,QAAQ,IAAIA,SAAS,KAAK,OAAO,KAChD+F,QAAQ,GAAG7D,gBAAgB,CAACA,gBAAgB,CAACP,MAAM,GAAG,CAAC,CAAC,EACxD;MACA;IACF;IACA,IACE,CAAC3B,SAAS,KAAK,KAAK,IAAIA,SAAS,KAAK,MAAM,KAC5C+F,QAAQ,GAAG7D,gBAAgB,CAACA,gBAAgB,CAACP,MAAM,GAAG,CAAC,CAAC,EACxD;MACA;IACF;;IAEA;IACA;IACA,IAAI,CAAC3B,SAAS,KAAK,QAAQ,IAAIA,SAAS,KAAK,OAAO,KAAK+F,QAAQ,GAAG7D,gBAAgB,CAAC,CAAC,CAAC,EAAE;MACvF,MAAM8D,MAAM,GAAGD,QAAQ,GAAG7D,gBAAgB,CAAC,CAAC,CAAC;MAC7ChD,GAAG,CAACU,SAAS,CAAC2D,OAAO,EAAE;QACrB,WAAW,EAAEpE,UAAU,CAACa,SAAS,CAAC,GAC9B,kBAAkBkC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,GAC7C,eAAeA,gBAAgB,CAAC,CAAC,CAAC,WAAW;QACjD,qBAAqB,EAAE,GAAGA,gBAAgB,CAAC,CAAC,CAAC;MAC/C,CAAC,CAAC;MACFkB,2BAA2B,CAAC4C,MAAM,EAAE,KAAK,CAAC;MAC1C;IACF;IAEA5C,2BAA2B,CAAC,CAAC,EAAE,KAAK,CAAC;IACrC;IACA;IACA;IACAlE,GAAG,CAACU,SAAS,CAAC2D,OAAO,EAAE;MACrB,WAAW,EAAEpE,UAAU,CAACa,SAAS,CAAC,GAC9B,kBAAkB+F,QAAQ,QAAQ,GAClC,eAAeA,QAAQ,WAAW;MACtC,qBAAqB,EAAE,GAAGA,QAAQ;IACpC,CAAC,CAAC;EACJ;EAEA,SAASE,oBAAoBA,CAACC,kBAA0B,EAAEC,cAAuB,EAAE;IACjF,IACE,CAACxG,UAAU,IACX,OAAOiC,oBAAoB,KAAK,QAAQ,IACxC,CAACM,gBAAgB,IACjBpC,aAAa,KAAKsB,SAAS,EAE3B,OAAO,IAAI;;IAEb;IACA;IACA;IACA,IAAItB,aAAa,KAAK,CAAC,EAAE;MACvB,IAAI8B,oBAAoB,KAAK,CAAC,IAAI,CAACuE,cAAc,EAAE;QACjD,MAAMC,YAAY,GAAGlE,gBAAgB,CAACN,oBAAoB,CAAC;QAC3D,IAAIwE,YAAY,KAAKhF,SAAS,EAAE,OAAO,CAAC;QACxC,MAAMiF,SAAS,GAAGlH,UAAU,CAACa,SAAS,CAAC,GAAGiB,MAAM,CAACE,WAAW,GAAGF,MAAM,CAACC,UAAU;QAChF,MAAMoF,aAAa,GACjBtG,SAAS,KAAK,QAAQ,IAAIA,SAAS,KAAK,OAAO,GAAGqG,SAAS,GAAG,CAACA,SAAS;QAC1E,MAAME,YAAY,GAAG/D,IAAI,CAACmD,GAAG,CAACW,aAAa,GAAGF,YAAY,CAAC;QAC3D,OAAOG,YAAY,GAAG,CAAC,GAAG/D,IAAI,CAACS,GAAG,CAAC,CAAC,EAAEiD,kBAAkB,GAAGK,YAAY,CAAC,GAAG,CAAC;MAC9E;MACA,OAAO,CAAC;IACV;;IAEA;IACA,MAAMvB,kBAAkB,GAAGpD,oBAAoB,KAAK9B,aAAa,GAAG,CAAC;IACrE,MAAM0G,0BAA0B,GAAG5E,oBAAoB,IAAI9B,aAAa;IAExE,IAAI0G,0BAA0B,IAAIL,cAAc,EAAE;MAChD,OAAO,CAAC;IACV;;IAEA;IACA,IAAInB,kBAAkB,IAAI,CAACmB,cAAc,EAAE,OAAO,CAAC;IACnD,IAAI,CAACpE,UAAU,IAAI,CAACiD,kBAAkB,EAAE,OAAO,IAAI;;IAEnD;IACA,MAAMyB,oBAAoB,GAAGzB,kBAAkB,GAC3CpD,oBAAoB,GAAG,CAAC,GACxBA,oBAAoB,GAAG,CAAC;;IAE5B;IACA,MAAM8E,iBAAiB,GAAG1B,kBAAkB,GACxC9C,gBAAgB,CAACuE,oBAAoB,CAAC,GAAGvE,gBAAgB,CAACuE,oBAAoB,GAAG,CAAC,CAAC,GACnFvE,gBAAgB,CAACuE,oBAAoB,GAAG,CAAC,CAAC,GAAGvE,gBAAgB,CAACuE,oBAAoB,CAAC;IAEvF,MAAME,iBAAiB,GAAGT,kBAAkB,GAAG1D,IAAI,CAACmD,GAAG,CAACe,iBAAiB,CAAC;IAE1E,IAAI1B,kBAAkB,EAAE;MACtB,OAAO,CAAC,GAAG2B,iBAAiB;IAC9B,CAAC,MAAM;MACL,OAAOA,iBAAiB;IAC1B;EACF;EAEA,OAAO;IACLlF,eAAe;IACfhB,eAAe;IACfsB,UAAU;IACVkE,oBAAoB;IACpBvF,kBAAkB;IAClBkB,oBAAoB;IACpB8C,SAAS;IACToB,MAAM;IACN5D;EACF,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TrueSheet.web.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.web.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAaV,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EAKvB,MAAM,mBAAmB,CAAC;AAkB3B,QAAA,MAAM,kBAAkB,6GAm4BtB,CAAC;AAyCH,eAAO,MAAM,SAAS,EAAyB,OAAO,kBAAkB,GAAG,sBAAsB,CAAC"}
1
+ {"version":3,"file":"TrueSheet.web.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.web.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAaV,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EAKvB,MAAM,mBAAmB,CAAC;AAkB3B,QAAA,MAAM,kBAAkB,6GAm9BtB,CAAC;AAyCH,eAAO,MAAM,SAAS,EAAyB,OAAO,kBAAkB,GAAG,sBAAsB,CAAC"}
@@ -1,11 +1,19 @@
1
1
  import React from 'react';
2
2
  import type { DrawerDirection } from './types';
3
+ export interface DragEvent {
4
+ target: EventTarget;
5
+ pageX: number;
6
+ pageY: number;
7
+ pointerType: string;
8
+ }
3
9
  interface DrawerContextValue {
4
10
  drawerRef: React.RefObject<HTMLDivElement | null>;
5
11
  overlayRef: React.RefObject<HTMLDivElement | null>;
6
12
  onPress: (event: React.PointerEvent<HTMLDivElement>) => void;
7
13
  onRelease: (event: React.PointerEvent<HTMLDivElement> | null) => void;
8
14
  onDrag: (event: React.PointerEvent<HTMLDivElement>) => void;
15
+ onTouchDrag: (event: DragEvent, pointerEvent?: React.PointerEvent<HTMLDivElement>) => void;
16
+ onTouchRelease: (event: DragEvent | null, pointerEvent?: React.PointerEvent<HTMLDivElement>) => void;
9
17
  onNestedDrag: (event: React.PointerEvent<HTMLDivElement>, percentageDragged: number) => void;
10
18
  onNestedOpenChange: (o: boolean) => void;
11
19
  onNestedRelease: (event: React.PointerEvent<HTMLDivElement>, open: boolean) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/web/vaul/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,UAAU,kBAAkB;IAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClD,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC7D,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACtE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC5D,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,iBAAiB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7F,kBAAkB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACpF,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC;IACxC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,kBAAkB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,SAAS,EAAE,eAAe,CAAC;IAC3B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,yBAAyB,EAAE,OAAO,CAAC;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACzC,mBAAmB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAC/E,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC5C;AAED,eAAO,MAAM,aAAa,mCAmCxB,CAAC;AAEH,eAAO,MAAM,gBAAgB,0BAM5B,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/web/vaul/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClD,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC7D,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACtE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC5D,WAAW,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC3F,cAAc,EAAE,CACd,KAAK,EAAE,SAAS,GAAG,IAAI,EACvB,YAAY,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,KAC9C,IAAI,CAAC;IACV,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,iBAAiB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7F,kBAAkB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACpF,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC;IACxC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,kBAAkB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,SAAS,EAAE,eAAe,CAAC;IAC3B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,yBAAyB,EAAE,OAAO,CAAC;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACzC,mBAAmB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAC/E,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC5C;AAED,eAAO,MAAM,aAAa,mCAqCxB,CAAC;AAEH,eAAO,MAAM,gBAAgB,0BAM5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/web/vaul/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/web/vaul/index.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-snap-points.d.ts","sourceRoot":"","sources":["../../../../../src/web/vaul/use-snap-points.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,wBAAgB,aAAa,CAAC,EAC5B,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,SAAS,EACT,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,SAAoB,EACpB,SAAS,EACT,qBAAqB,EACrB,MAAM,EACN,aAAa,EACb,cAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,eAAsB,GACvB,EAAE;IACD,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7C,sBAAsB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACjE,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClD,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACnD,iBAAiB,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;;;;+CAiVmD,MAAM,kBAAkB,OAAO;;;0EA3H9E;QACD,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,IAAI,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,OAAO,CAAC;KACtB;kCA4EoC;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE;;EA6GjE"}
1
+ {"version":3,"file":"use-snap-points.d.ts","sourceRoot":"","sources":["../../../../../src/web/vaul/use-snap-points.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,wBAAgB,aAAa,CAAC,EAC5B,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,SAAS,EACT,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,SAAoB,EACpB,SAAS,EACT,qBAAqB,EACrB,MAAM,EACN,aAAa,EACb,cAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,eAAsB,GACvB,EAAE;IACD,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7C,sBAAsB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACjE,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClD,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACnD,iBAAiB,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;;;;+CA0VmD,MAAM,kBAAkB,OAAO;;;0EAhI9E;QACD,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,IAAI,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,OAAO,CAAC;KACtB;kCA4EoC;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE;;EAkHjE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodev09/react-native-true-sheet",
3
- "version": "3.11.6",
3
+ "version": "3.11.8",
4
4
  "description": "The true native bottom sheet experience for your React Native Apps.",
5
5
  "source": "./src/index.ts",
6
6
  "main": "./lib/module/index.js",
@@ -245,6 +245,13 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
245
245
  setFooterHeight(e.nativeEvent.layout.height);
246
246
  }, []);
247
247
 
248
+ // DOM refs for live 'peek' measurement in computeDetentGeometry — the
249
+ // state above (which drives vaul's `peekHeight` prop) comes from RN-web
250
+ // `onLayout`, which dispatches a frame after mount: too late for the first
251
+ // willPresent.
252
+ const headerElRef = useRef<View>(null);
253
+ const footerElRef = useRef<View>(null);
254
+
248
255
  // Distance from the content top to the bottom of a `TrueSheetPeek` rendered
249
256
  // within the content — measured by the peek against `contentRef`.
250
257
  const [peekContentHeight, setPeekContentHeight] = useState(0);
@@ -255,6 +262,42 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
255
262
  (header ? headerHeight : 0) + (footer ? footerHeight : 0) + peekContentHeight ||
256
263
  DEFAULT_PEEK_HEIGHT;
257
264
 
265
+ // Below the last detent a vertical touch pan moves the sheet, not the
266
+ // content — `[data-vaul-scroll-locked]` disables vertical touch panning on
267
+ // the scroll container and everything inside it (see vaul/style.css).
268
+ const isScrollLocked =
269
+ validDetents.length > 0 && activeSnapPoint !== validDetents[validDetents.length - 1];
270
+
271
+ // Vaul measures the auto-size wrapper's offsetHeight (always, post fork).
272
+ // Track it here so the form sheet can size its card to fit content,
273
+ // clamped between a minimum ratio of the viewport and a maximum derived
274
+ // from `detachedOffset` (the breathing room left at top + bottom of the
275
+ // floating card).
276
+ const [measuredContentHeight, setMeasuredContentHeight] = useState(0);
277
+
278
+ const effectiveMaxContentHeight = useMemo<number | undefined>(() => {
279
+ if (maxContentHeight !== undefined) return maxContentHeight;
280
+ if (!isFormSheet) return undefined;
281
+ const min = windowHeight * DEFAULT_FORM_SHEET_HEIGHT_RATIO;
282
+ const max = Math.max(min, windowHeight - 2 * detachedOffset);
283
+ if (measuredContentHeight <= 0) return min;
284
+ return Math.max(min, Math.min(measuredContentHeight, max));
285
+ }, [maxContentHeight, isFormSheet, windowHeight, detachedOffset, measuredContentHeight]);
286
+
287
+ // Center the form sheet using the actual visible drawer height. Vaul
288
+ // auto-sizes to content (capped by `maxContentHeight`), so when content is
289
+ // shorter than `effectiveMaxContentHeight`'s min-clamped floor, using that
290
+ // for the offset would push a small sheet below the viewport center.
291
+ const effectiveDetachedOffset = useMemo(() => {
292
+ if (!isFormSheet) return detachedOffset;
293
+ const max = Math.max(0, windowHeight - 2 * detachedOffset);
294
+ const visibleHeight =
295
+ measuredContentHeight > 0
296
+ ? Math.min(measuredContentHeight, max)
297
+ : (effectiveMaxContentHeight ?? 0);
298
+ return Math.max(0, (windowHeight - visibleHeight) / 2);
299
+ }, [isFormSheet, windowHeight, detachedOffset, measuredContentHeight, effectiveMaxContentHeight]);
300
+
258
301
  // Present/dismiss events. The sheet settles via a CSS `transform` transition
259
302
  // on either the drawer (snap-points on autopresent) or the wrapper (whole-
260
303
  // card slide on reopen/dismiss). `Animation.finished` from the Web Animations
@@ -285,54 +328,112 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
285
328
  activeSnapPointRef.current = activeSnapPoint;
286
329
  });
287
330
 
288
- const computeDetentInfo = useCallback((): DetentInfoEventPayload => {
289
- const snap = activeSnapPointRef.current;
290
- const index = snap != null ? validDetentsRef.current.indexOf(snap) : -1;
291
- const position = drawerContentRef.current?.getBoundingClientRect().top ?? 0;
292
- const detent = typeof snap === 'number' ? snap : 0;
293
- return { index, position, detent };
331
+ // Detent geometry — target top-Y (`positions`) and height ratio (`values`)
332
+ // per detent. Mirrors vaul's snap-offset math exactly (same effective
333
+ // height, ceiling, and 'auto'/'peek' resolution) so computed targets match
334
+ // where the drawer actually settles. Numeric detent d → top-Y =
335
+ // (1 - d) * effectiveH. 'auto' and 'peek' are measured live from the DOM
336
+ // (see below). Inputs live in a render-synced ref so the compute callbacks
337
+ // stay referentially stable for the event effects.
338
+ const geometryInputsRef = useRef({
339
+ effectiveDetached,
340
+ effectiveDetachedOffset,
341
+ effectiveMaxContentHeight,
342
+ peekHeight,
343
+ peekContentHeight,
344
+ measuredContentHeight,
345
+ });
346
+ geometryInputsRef.current = {
347
+ effectiveDetached,
348
+ effectiveDetachedOffset,
349
+ effectiveMaxContentHeight,
350
+ peekHeight,
351
+ peekContentHeight,
352
+ measuredContentHeight,
353
+ };
354
+
355
+ const computeDetentGeometry = useCallback(() => {
356
+ const inputs = geometryInputsRef.current;
357
+ const windowH = window.innerHeight;
358
+ const effectiveH = inputs.effectiveDetached
359
+ ? windowH - inputs.effectiveDetachedOffset
360
+ : windowH;
361
+ // Matches vaul's height ceiling: min(effectiveH, maxContentHeight).
362
+ const ceiling =
363
+ inputs.effectiveMaxContentHeight !== undefined
364
+ ? Math.min(effectiveH, inputs.effectiveMaxContentHeight)
365
+ : effectiveH;
366
+ // 'auto' resolves to the auto-size wrapper's height. Read it live — the
367
+ // `measuredContentHeight` state lags mount by a frame (vaul's initial
368
+ // ref-callback measure runs while the portal subtree is still detached,
369
+ // so it reads 0 until the ResizeObserver fires). Falls back to the state
370
+ // value, then to vaul's pre-measure fallback (effectiveHeight / 2).
371
+ const autoWrapper = drawerContentRef.current?.querySelector<HTMLElement>(
372
+ '[data-vaul-auto-size-wrapper]'
373
+ );
374
+ const measuredHeight = autoWrapper?.offsetHeight || inputs.measuredContentHeight;
375
+ const autoHeight = Math.min(measuredHeight > 0 ? measuredHeight : effectiveH / 2, ceiling);
376
+
377
+ // 'peek' is measured live from the DOM (offsetHeight is layout-based, so
378
+ // in-flight transforms don't skew it): the state-driven `peekHeight` prop
379
+ // comes from RN-web onLayout, which dispatches a frame after mount — too
380
+ // late for the first willPresent on autopresent. Ref callbacks can't
381
+ // measure either: they fire while the portal subtree is still detached.
382
+ // Geometry only runs while the drawer is mounted, so the elements are
383
+ // measurable here; fall back to the state value when they're absent.
384
+ const headerEl = headerElRef.current as unknown as HTMLElement | null;
385
+ const footerEl = footerElRef.current as unknown as HTMLElement | null;
386
+ const livePeekHeight =
387
+ headerEl || footerEl
388
+ ? (headerEl?.offsetHeight ?? 0) +
389
+ (footerEl?.offsetHeight ?? 0) +
390
+ inputs.peekContentHeight || DEFAULT_PEEK_HEIGHT
391
+ : inputs.peekHeight;
392
+
393
+ const positions: number[] = [];
394
+ const values: number[] = [];
395
+ for (const d of validDetentsRef.current) {
396
+ const h =
397
+ typeof d === 'number'
398
+ ? Math.min(d * effectiveH, ceiling)
399
+ : d === 'peek'
400
+ ? Math.min(livePeekHeight, ceiling)
401
+ : autoHeight;
402
+ positions.push(effectiveH - h);
403
+ values.push(effectiveH > 0 ? h / effectiveH : 0);
404
+ }
405
+ return { windowH, positions, values };
294
406
  }, []);
295
407
 
408
+ // Detent info for lifecycle events. Position/detent come from the active
409
+ // detent's target geometry — not the live DOM rect — so willPresent (drawer
410
+ // not mounted yet), detentChange (animation just started), and didPresent
411
+ // all emit the settled detent position, matching iOS/Android. Drag events
412
+ // pass `live: true` to report the in-flight rect position instead, also
413
+ // matching native.
414
+ const computeDetentInfo = useCallback(
415
+ (live = false): DetentInfoEventPayload => {
416
+ const snap = activeSnapPointRef.current;
417
+ const index = snap != null ? validDetentsRef.current.indexOf(snap) : -1;
418
+ const { windowH, positions, values } = computeDetentGeometry();
419
+ const target = index >= 0 ? positions[index] : undefined;
420
+ const position = live
421
+ ? (drawerContentRef.current?.getBoundingClientRect().top ?? target ?? windowH)
422
+ : (target ?? windowH);
423
+ return { index, position, detent: index >= 0 ? (values[index] ?? 0) : 0 };
424
+ },
425
+ [computeDetentGeometry]
426
+ );
427
+
296
428
  // Mirror Android: interpolate fractional index and detent from the drawer's
297
429
  // top-Y so continuous position updates (drag, animation) carry smooth values
298
- // between detent boundaries. Numeric detent d → top-Y = (1 - d) * effectiveH.
299
- // 'auto' resolves to the [data-vaul-auto-size-wrapper] element's measured
300
- // offsetHeight — same signal vaul uses to compute its snap offset.
430
+ // between detent boundaries.
301
431
  const interpolateFromPosition = useCallback(
302
432
  (position: number): { index: number; detent: number } => {
303
- const snaps = validDetentsRef.current;
304
- const count = snaps.length;
433
+ const { windowH, positions, values } = computeDetentGeometry();
434
+ const count = positions.length;
305
435
  if (count === 0) return { index: -1, detent: 0 };
306
436
 
307
- const windowH = window.innerHeight;
308
- const effectiveH = effectiveDetached ? windowH - detachedOffset : windowH;
309
- // Matches vaul's height ceiling: min(effectiveH, maxContentHeight).
310
- const ceiling =
311
- maxContentHeight !== undefined ? Math.min(effectiveH, maxContentHeight) : effectiveH;
312
-
313
- const autoWrapper = drawerContentRef.current?.querySelector<HTMLElement>(
314
- '[data-vaul-auto-size-wrapper]'
315
- );
316
- const autoHeight = Math.min(autoWrapper?.offsetHeight ?? ceiling / 2, ceiling);
317
-
318
- const positions: number[] = [];
319
- const values: number[] = [];
320
- for (let i = 0; i < count; i++) {
321
- const d = snaps[i];
322
- if (typeof d === 'number') {
323
- const h = Math.min(d * effectiveH, ceiling);
324
- positions.push(effectiveH - h);
325
- values.push(effectiveH > 0 ? h / effectiveH : 0);
326
- } else if (d === 'peek') {
327
- const h = Math.min(peekHeight, ceiling);
328
- positions.push(effectiveH - h);
329
- values.push(effectiveH > 0 ? h / effectiveH : 0);
330
- } else {
331
- positions.push(effectiveH - autoHeight);
332
- values.push(effectiveH > 0 ? autoHeight / effectiveH : 0);
333
- }
334
- }
335
-
336
437
  // Absorb subpixel drift from getBoundingClientRect so at-rest positions
337
438
  // don't sneak into the below-first branch and emit near-zero negatives
338
439
  // like `-1e-8` (which render as "-1" via JS scientific-notation toString).
@@ -378,7 +479,7 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
378
479
 
379
480
  return { index: count - 1, detent: values[count - 1]! };
380
481
  },
381
- [effectiveDetached, detachedOffset, maxContentHeight, peekHeight]
482
+ [computeDetentGeometry]
382
483
  );
383
484
 
384
485
  const handlePositionChange = useCallback(
@@ -411,22 +512,15 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
411
512
  const wasOpen = wasOpenRef.current;
412
513
  wasOpenRef.current = isOpen;
413
514
 
414
- if (!isOpen && !wasOpen) return undefined;
515
+ if (isOpen === wasOpen) return undefined;
415
516
 
416
- const present = !wasOpen && isOpen;
417
- if (present) {
418
- // Pair willFocus with willPresent on initial present — mirrors native
419
- // iOS where viewWillAppear dispatches both. The descendant-stack focus
420
- // effect handles subsequent gained/lost transitions.
421
- onWillPresentRef.current?.({ nativeEvent: computeDetentInfo() } as WillPresentEvent);
422
- onWillFocusRef.current?.({ nativeEvent: null } as WillFocusEvent);
423
- } else if (wasOpen && !isOpen) {
517
+ const present = isOpen;
518
+ if (!present) {
424
519
  // Pair willBlur with willDismiss on dismiss — mirrors native iOS
425
- // emitWillDismissEvents (blur fires before dismiss).
520
+ // emitWillDismissEvents (blur fires before dismiss). willPresent is
521
+ // deferred to `start()` below (needs the mounted drawer's geometry).
426
522
  onWillBlurRef.current?.({ nativeEvent: null } as WillBlurEvent);
427
523
  onWillDismissRef.current?.({ nativeEvent: null } as WillDismissEvent);
428
- } else {
429
- return undefined;
430
524
  }
431
525
 
432
526
  const fireDone = () => {
@@ -445,12 +539,25 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
445
539
  const start = () => {
446
540
  if (canceled) return;
447
541
  const drawer = drawerContentRef.current;
448
- if (!drawer) {
542
+ if (!drawer || !drawer.isConnected) {
449
543
  // Drawer hasn't mounted yet (Radix Presence defers the portal mount
450
- // past the first effect pass). Poll until the ref is populated.
544
+ // past the first effect pass), or its subtree isn't attached to the
545
+ // document yet (autopresent commits the portal before the app tree
546
+ // attaches, so nothing is measurable). Poll until it's live.
451
547
  rafId = window.requestAnimationFrame(start);
452
548
  return;
453
549
  }
550
+ if (present) {
551
+ // Emit will-events only once the drawer is mounted and attached —
552
+ // detent geometry ('auto' height, 'peek', form-sheet sizing) is
553
+ // measurable from the DOM here; a synchronous emission would use the
554
+ // pre-measure fallbacks on first present. Pairing willFocus with
555
+ // willPresent mirrors native iOS where viewWillAppear dispatches
556
+ // both; the descendant-stack focus effect handles subsequent
557
+ // transitions.
558
+ onWillPresentRef.current?.({ nativeEvent: computeDetentInfo() } as WillPresentEvent);
559
+ onWillFocusRef.current?.({ nativeEvent: null } as WillFocusEvent);
560
+ }
454
561
  const wrapper = drawer.closest<HTMLElement>('[data-vaul-detached-wrapper]') ?? null;
455
562
  const targets = wrapper ? [drawer, wrapper] : [drawer];
456
563
 
@@ -504,14 +611,14 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
504
611
  const handleDrag = useCallback(() => {
505
612
  if (!isDraggingRef.current) {
506
613
  isDraggingRef.current = true;
507
- onDragBeginRef.current?.({ nativeEvent: computeDetentInfo() } as DragBeginEvent);
614
+ onDragBeginRef.current?.({ nativeEvent: computeDetentInfo(true) } as DragBeginEvent);
508
615
  }
509
- onDragChangeRef.current?.({ nativeEvent: computeDetentInfo() } as DragChangeEvent);
616
+ onDragChangeRef.current?.({ nativeEvent: computeDetentInfo(true) } as DragChangeEvent);
510
617
  }, [computeDetentInfo]);
511
618
  const handleRelease = useCallback(() => {
512
619
  if (!isDraggingRef.current) return;
513
620
  isDraggingRef.current = false;
514
- onDragEndRef.current?.({ nativeEvent: computeDetentInfo() } as DragEndEvent);
621
+ onDragEndRef.current?.({ nativeEvent: computeDetentInfo(true) } as DragEndEvent);
515
622
  }, [computeDetentInfo]);
516
623
 
517
624
  const { isNested, dismissAbove, descendants } = useSheetStack(
@@ -764,39 +871,9 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
764
871
  // Form-sheet style (presentation='form'): centered floating card with a
765
872
  // default width and a height fit to content. We reuse the existing detached
766
873
  // mechanic so drag/snap math stays correct — the wrapper is bottom-attached
767
- // with a computed offset that centers it vertically. `presentation` is
768
- // absolute: when 'form', `maxContentWidth` is ignored and the card uses
769
- // DEFAULT_FORM_SHEET_WIDTH.
770
-
771
- // Vaul measures the auto-size wrapper's offsetHeight (always, post fork).
772
- // Track it here so the form sheet can size its card to fit content,
773
- // clamped between a minimum ratio of the viewport and a maximum derived
774
- // from `detachedOffset` (the breathing room left at top + bottom of the
775
- // floating card).
776
- const [measuredContentHeight, setMeasuredContentHeight] = useState(0);
777
-
778
- const effectiveMaxContentHeight = useMemo<number | undefined>(() => {
779
- if (maxContentHeight !== undefined) return maxContentHeight;
780
- if (!isFormSheet) return undefined;
781
- const min = windowHeight * DEFAULT_FORM_SHEET_HEIGHT_RATIO;
782
- const max = Math.max(min, windowHeight - 2 * detachedOffset);
783
- if (measuredContentHeight <= 0) return min;
784
- return Math.max(min, Math.min(measuredContentHeight, max));
785
- }, [maxContentHeight, isFormSheet, windowHeight, detachedOffset, measuredContentHeight]);
786
-
787
- // Center the form sheet using the actual visible drawer height. Vaul
788
- // auto-sizes to content (capped by `maxContentHeight`), so when content is
789
- // shorter than `effectiveMaxContentHeight`'s min-clamped floor, using that
790
- // for the offset would push a small sheet below the viewport center.
791
- const effectiveDetachedOffset = useMemo(() => {
792
- if (!isFormSheet) return detachedOffset;
793
- const max = Math.max(0, windowHeight - 2 * detachedOffset);
794
- const visibleHeight =
795
- measuredContentHeight > 0
796
- ? Math.min(measuredContentHeight, max)
797
- : (effectiveMaxContentHeight ?? 0);
798
- return Math.max(0, (windowHeight - visibleHeight) / 2);
799
- }, [isFormSheet, windowHeight, detachedOffset, measuredContentHeight, effectiveMaxContentHeight]);
874
+ // with a computed offset (`effectiveDetachedOffset`, declared above) that
875
+ // centers it vertically. `presentation` is absolute: when 'form',
876
+ // `maxContentWidth` is ignored and the card uses DEFAULT_FORM_SHEET_WIDTH.
800
877
 
801
878
  // The wrapper holds all horizontal sizing/anchoring so its rounded-bottom
802
879
  // clip (when detached) aligns with the drawer's horizontal bounds on
@@ -909,7 +986,7 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
909
986
  detachedSiblings={
910
987
  footer ? (
911
988
  <div style={footerFloatStyle}>
912
- <View style={footerStyle} onLayout={handleFooterLayout}>
989
+ <View ref={footerElRef} style={footerStyle} onLayout={handleFooterLayout}>
913
990
  {isValidElement(footer) ? footer : createElement(footer)}
914
991
  </View>
915
992
  </div>
@@ -926,11 +1003,14 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
926
1003
  // definite height for the scroll container's flex:1 to fill.
927
1004
  <div style={scrollableLayoutStyle}>
928
1005
  {header && (
929
- <View style={headerStyle} onLayout={handleHeaderLayout}>
1006
+ <View ref={headerElRef} style={headerStyle} onLayout={handleHeaderLayout}>
930
1007
  {isValidElement(header) ? header : createElement(header)}
931
1008
  </View>
932
1009
  )}
933
- <div style={scrollableContainerStyle}>
1010
+ <div
1011
+ style={scrollableContainerStyle}
1012
+ data-vaul-scroll-locked={isScrollLocked ? '' : undefined}
1013
+ >
934
1014
  <View ref={contentRef} style={style}>
935
1015
  {children}
936
1016
  </View>
@@ -939,7 +1019,7 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
939
1019
  ) : (
940
1020
  <>
941
1021
  {header && (
942
- <View style={headerStyle} onLayout={handleHeaderLayout}>
1022
+ <View ref={headerElRef} style={headerStyle} onLayout={handleHeaderLayout}>
943
1023
  {isValidElement(header) ? header : createElement(header)}
944
1024
  </View>
945
1025
  )}
@@ -1,12 +1,24 @@
1
1
  import React from 'react';
2
2
  import type { DrawerDirection } from './types';
3
3
 
4
+ export interface DragEvent {
5
+ target: EventTarget;
6
+ pageX: number;
7
+ pageY: number;
8
+ pointerType: string;
9
+ }
10
+
4
11
  interface DrawerContextValue {
5
12
  drawerRef: React.RefObject<HTMLDivElement | null>;
6
13
  overlayRef: React.RefObject<HTMLDivElement | null>;
7
14
  onPress: (event: React.PointerEvent<HTMLDivElement>) => void;
8
15
  onRelease: (event: React.PointerEvent<HTMLDivElement> | null) => void;
9
16
  onDrag: (event: React.PointerEvent<HTMLDivElement>) => void;
17
+ onTouchDrag: (event: DragEvent, pointerEvent?: React.PointerEvent<HTMLDivElement>) => void;
18
+ onTouchRelease: (
19
+ event: DragEvent | null,
20
+ pointerEvent?: React.PointerEvent<HTMLDivElement>
21
+ ) => void;
10
22
  onNestedDrag: (event: React.PointerEvent<HTMLDivElement>, percentageDragged: number) => void;
11
23
  onNestedOpenChange: (o: boolean) => void;
12
24
  onNestedRelease: (event: React.PointerEvent<HTMLDivElement>, open: boolean) => void;
@@ -47,6 +59,8 @@ export const DrawerContext = React.createContext<DrawerContextValue>({
47
59
  onPress: () => {},
48
60
  onRelease: () => {},
49
61
  onDrag: () => {},
62
+ onTouchDrag: () => {},
63
+ onTouchRelease: () => {},
50
64
  onNestedDrag: () => {},
51
65
  onNestedOpenChange: () => {},
52
66
  onNestedRelease: () => {},