@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.
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetCoordinatorLayout.kt +46 -19
- package/lib/module/TrueSheet.web.js +159 -84
- package/lib/module/TrueSheet.web.js.map +1 -1
- package/lib/module/web/vaul/context.js +2 -0
- package/lib/module/web/vaul/context.js.map +1 -1
- package/lib/module/web/vaul/index.js +134 -19
- package/lib/module/web/vaul/index.js.map +1 -1
- package/lib/module/web/vaul/style.css +24 -1
- package/lib/module/web/vaul/use-snap-points.js +13 -4
- package/lib/module/web/vaul/use-snap-points.js.map +1 -1
- package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -1
- package/lib/typescript/src/web/vaul/context.d.ts +8 -0
- package/lib/typescript/src/web/vaul/context.d.ts.map +1 -1
- package/lib/typescript/src/web/vaul/index.d.ts.map +1 -1
- package/lib/typescript/src/web/vaul/use-snap-points.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/TrueSheet.web.tsx +175 -95
- package/src/web/vaul/context.ts +14 -0
- package/src/web/vaul/index.tsx +147 -20
- package/src/web/vaul/style.css +24 -1
- package/src/web/vaul/use-snap-points.ts +14 -5
|
@@ -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":";;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;IAC5BrE,GAAG,CAACU,SAAS,CAAC2D,OAAO,EAAE;MACrBG,UAAU,EAAEY,eAAe,GACvB,aAAajF,WAAW,CAACsE,QAAQ,kBAAkBtE,WAAW,CAACuE,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,GAAG,GAChF,MAAM;MACVC,SAAS,EAAE3E,UAAU,CAACa,SAAS,CAAC,GAC5B,kBAAkBmE,SAAS,QAAQ,GACnC,eAAeA,SAAS;IAC9B,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;QACrBO,SAAS,EAAE3E,UAAU,CAACa,SAAS,CAAC,GAC5B,kBAAkBkC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,GAC7C,eAAeA,gBAAgB,CAAC,CAAC,CAAC;MACxC,CAAC,CAAC;MACFkB,2BAA2B,CAAC4C,MAAM,EAAE,KAAK,CAAC;MAC1C;IACF;IAEA5C,2BAA2B,CAAC,CAAC,EAAE,KAAK,CAAC;IACrClE,GAAG,CAACU,SAAS,CAAC2D,OAAO,EAAE;MACrBO,SAAS,EAAE3E,UAAU,CAACa,SAAS,CAAC,GAC5B,kBAAkB+F,QAAQ,QAAQ,GAClC,eAAeA,QAAQ;IAC7B,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
|
+
{"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 +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,
|
|
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,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/web/vaul/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;;;;+
|
|
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
package/src/TrueSheet.web.tsx
CHANGED
|
@@ -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
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
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.
|
|
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
|
|
304
|
-
const count =
|
|
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
|
-
[
|
|
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 (
|
|
515
|
+
if (isOpen === wasOpen) return undefined;
|
|
415
516
|
|
|
416
|
-
const present =
|
|
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)
|
|
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
|
|
768
|
-
//
|
|
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
|
|
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
|
)}
|
package/src/web/vaul/context.ts
CHANGED
|
@@ -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: () => {},
|