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.
@@ -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,yFA2lBhB,CAAC;AAIF,OAAO,EAAE,WAAW,EAAE,CAAC"}
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
- // Allow scrolling inside the body content
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
- // Check if at scroll boundaries
1557
- const isAtTop = scrollTop <= 0;
1558
- const isAtBottom = scrollTop + clientHeight >= scrollHeight;
1559
- // Only prevent default if at boundaries and trying to scroll further
1560
- if ((isAtTop && e.touches[0].clientY > (touchStart || 0)) ||
1561
- (isAtBottom && e.touches[0].clientY < (touchStart || 0))) {
1562
- // Allow the swipe-to-close gesture
1563
- if (!isDraggingFromHandle.current) {
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) {