infinity-ui-elements 1.14.4 → 1.14.5
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/dist/components/BottomSheet/BottomSheet.d.ts.map +1 -1
- package/dist/index.esm.js +33 -10
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +33 -10
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../src/components/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACjC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AA0CD,QAAA,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../src/components/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACjC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AA0CD,QAAA,MAAM,WAAW,yFAwnBhB,CAAC;AAIF,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/index.esm.js
CHANGED
|
@@ -1545,32 +1545,55 @@ const BottomSheet = React.forwardRef(({ isOpen, onClose, title, description, foo
|
|
|
1545
1545
|
document.body.style.right = "0";
|
|
1546
1546
|
document.body.style.width = "100%";
|
|
1547
1547
|
}
|
|
1548
|
+
// Track touch position for scroll boundary detection
|
|
1549
|
+
let lastTouchY = 0;
|
|
1550
|
+
const handleTouchStartForScroll = (e) => {
|
|
1551
|
+
lastTouchY = e.touches[0].clientY;
|
|
1552
|
+
};
|
|
1548
1553
|
// Prevent touchmove on overlay to stop iOS rubber-banding
|
|
1554
|
+
// But always allow scrolling inside body content
|
|
1549
1555
|
const preventTouchMove = (e) => {
|
|
1550
1556
|
const target = e.target;
|
|
1551
|
-
|
|
1557
|
+
const currentTouchY = e.touches[0].clientY;
|
|
1558
|
+
const touchDelta = currentTouchY - lastTouchY;
|
|
1559
|
+
lastTouchY = currentTouchY;
|
|
1560
|
+
// Always allow scrolling inside the body content
|
|
1552
1561
|
if (bodyRef.current?.contains(target)) {
|
|
1553
1562
|
const scrollTop = bodyRef.current.scrollTop;
|
|
1554
1563
|
const scrollHeight = bodyRef.current.scrollHeight;
|
|
1555
1564
|
const clientHeight = bodyRef.current.clientHeight;
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
//
|
|
1563
|
-
|
|
1565
|
+
const canScroll = scrollHeight > clientHeight;
|
|
1566
|
+
// If content is scrollable, allow normal scrolling
|
|
1567
|
+
if (canScroll) {
|
|
1568
|
+
const isAtTop = scrollTop <= 0;
|
|
1569
|
+
const isAtBottom = scrollTop + clientHeight >= scrollHeight - 1;
|
|
1570
|
+
const isScrollingDown = touchDelta > 0; // finger moving down = scrolling up
|
|
1571
|
+
const isScrollingUp = touchDelta < 0; // finger moving up = scrolling down
|
|
1572
|
+
// Only prevent at boundaries when trying to scroll beyond
|
|
1573
|
+
if ((isAtTop && isScrollingDown) || (isAtBottom && isScrollingUp)) {
|
|
1574
|
+
// At boundary, prevent overscroll but allow swipe-to-close from drag handle
|
|
1575
|
+
if (isDraggingFromHandle.current) {
|
|
1576
|
+
return; // Allow swipe gesture
|
|
1577
|
+
}
|
|
1564
1578
|
e.preventDefault();
|
|
1565
1579
|
}
|
|
1580
|
+
// Otherwise, allow normal scrolling
|
|
1581
|
+
return;
|
|
1566
1582
|
}
|
|
1583
|
+
// Content not scrollable, allow touch events to pass through
|
|
1584
|
+
return;
|
|
1585
|
+
}
|
|
1586
|
+
// Also allow scrolling in sticky content area
|
|
1587
|
+
if (target.closest('[data-sticky-content]')) {
|
|
1567
1588
|
return;
|
|
1568
1589
|
}
|
|
1569
|
-
// Prevent scroll on overlay and other areas
|
|
1590
|
+
// Prevent scroll on overlay and other areas (to prevent background scroll)
|
|
1570
1591
|
e.preventDefault();
|
|
1571
1592
|
};
|
|
1593
|
+
document.addEventListener("touchstart", handleTouchStartForScroll, { passive: true });
|
|
1572
1594
|
document.addEventListener("touchmove", preventTouchMove, { passive: false });
|
|
1573
1595
|
return () => {
|
|
1596
|
+
document.removeEventListener("touchstart", handleTouchStartForScroll);
|
|
1574
1597
|
document.removeEventListener("touchmove", preventTouchMove);
|
|
1575
1598
|
// Restore original styles
|
|
1576
1599
|
if (originalBodyStyles.current) {
|