@flowsterix/react 0.12.1 → 0.14.0

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/index.cjs CHANGED
@@ -15,7 +15,7 @@ require('./chunk-HPVLOLCD.cjs');
15
15
 
16
16
 
17
17
 
18
- var _chunkD5LQLRSUcjs = require('./chunk-D5LQLRSU.cjs');
18
+ var _chunk7SAJNRGZcjs = require('./chunk-7SAJNRGZ.cjs');
19
19
 
20
20
  // src/context.tsx
21
21
 
@@ -433,7 +433,7 @@ var TourProvider = ({
433
433
  if (!definition) {
434
434
  throw new Error(`Flow with id "${flowId}" is not registered.`);
435
435
  }
436
- if (!storageAdapter && !fallbackStorageRef.current && _chunkD5LQLRSUcjs.isBrowser) {
436
+ if (!storageAdapter && !fallbackStorageRef.current && _chunk7SAJNRGZcjs.isBrowser) {
437
437
  fallbackStorageRef.current = _core.createLocalStorageAdapter.call(void 0, );
438
438
  }
439
439
  const resolvedStorageAdapter2 = storageAdapter ? storageAdapter : fallbackStorageRef.current;
@@ -589,7 +589,7 @@ var TourProvider = ({
589
589
  setEligibleFlows([]);
590
590
  return;
591
591
  }
592
- if (!storageAdapter && !fallbackStorageRef.current && _chunkD5LQLRSUcjs.isBrowser) {
592
+ if (!storageAdapter && !fallbackStorageRef.current && _chunk7SAJNRGZcjs.isBrowser) {
593
593
  fallbackStorageRef.current = _core.createLocalStorageAdapter.call(void 0, );
594
594
  }
595
595
  const resolvedStorageAdapter2 = _nullishCoalesce(storageAdapter, () => ( fallbackStorageRef.current));
@@ -656,7 +656,7 @@ var TourProvider = ({
656
656
  const findMatchingFlow = (path) => {
657
657
  for (const { flow, stepIndex } of eligibleFlows) {
658
658
  const step = flow.steps[stepIndex];
659
- if (!step.route || _chunkD5LQLRSUcjs.matchRoute.call(void 0, { pattern: step.route, path })) {
659
+ if (!step.route || _chunk7SAJNRGZcjs.matchRoute.call(void 0, { pattern: step.route, path })) {
660
660
  return flow;
661
661
  }
662
662
  }
@@ -670,9 +670,9 @@ var TourProvider = ({
670
670
  startFlow(flow.id, { resume: true });
671
671
  }
672
672
  };
673
- const currentPath = _chunkD5LQLRSUcjs.getCurrentRoutePath.call(void 0, );
673
+ const currentPath = _chunk7SAJNRGZcjs.getCurrentRoutePath.call(void 0, );
674
674
  tryStart(currentPath);
675
- const unsubscribe = _chunkD5LQLRSUcjs.subscribeToRouteChanges.call(void 0, (path) => {
675
+ const unsubscribe = _chunk7SAJNRGZcjs.subscribeToRouteChanges.call(void 0, (path) => {
676
676
  tryStart(path);
677
677
  });
678
678
  return () => {
@@ -716,8 +716,12 @@ var TourProvider = ({
716
716
  [getActiveStore]
717
717
  );
718
718
  const advanceStep = _react.useCallback.call(void 0,
719
- (stepId) => getActiveStore().advanceStep(stepId),
720
- [getActiveStore]
719
+ (stepId) => {
720
+ const store = storeRef.current;
721
+ if (!store) return null;
722
+ return store.advanceStep(stepId);
723
+ },
724
+ []
721
725
  );
722
726
  const toggleDebug = _react.useCallback.call(void 0, () => {
723
727
  setDebugEnabled((previous) => !previous);
@@ -1133,7 +1137,7 @@ var computeRectSource = (rect, storedRect, isScreen) => {
1133
1137
  return "none";
1134
1138
  };
1135
1139
  var computeVisibilityState = (element, rect, isScreen) => {
1136
- if (!_chunkD5LQLRSUcjs.isBrowser) return "unknown";
1140
+ if (!_chunk7SAJNRGZcjs.isBrowser) return "unknown";
1137
1141
  if (isScreen) return "visible";
1138
1142
  if (!element) return "missing";
1139
1143
  if (!document.documentElement.contains(element)) return "detached";
@@ -1149,7 +1153,7 @@ var computeVisibilityState = (element, rect, isScreen) => {
1149
1153
  return "visible";
1150
1154
  };
1151
1155
  var scrollContainerBy = (container, topDelta, leftDelta, behavior) => {
1152
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
1156
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
1153
1157
  if (Math.abs(topDelta) < 0.5 && Math.abs(leftDelta) < 0.5) {
1154
1158
  return;
1155
1159
  }
@@ -1176,8 +1180,8 @@ var scrollContainerBy = (container, topDelta, leftDelta, behavior) => {
1176
1180
  };
1177
1181
  var alignWithinViewport = (element, margin, behavior, mode) => {
1178
1182
  if (mode === "preserve") return;
1179
- const viewportRect = _chunkD5LQLRSUcjs.getViewportRect.call(void 0, );
1180
- const finalRect = _chunkD5LQLRSUcjs.getClientRect.call(void 0, element);
1183
+ const viewportRect = _chunk7SAJNRGZcjs.getViewportRect.call(void 0, );
1184
+ const finalRect = _chunk7SAJNRGZcjs.getClientRect.call(void 0, element);
1181
1185
  const availableHeight = viewportRect.height - (margin.top + margin.bottom);
1182
1186
  if (availableHeight <= 0) return;
1183
1187
  const desiredTop = mode === "center" ? margin.top + (availableHeight - finalRect.height) / 2 : margin.top;
@@ -1191,15 +1195,15 @@ var alignWithinViewport = (element, margin, behavior, mode) => {
1191
1195
  var ensureElementInView = (element, margin, options) => {
1192
1196
  const behavior = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _37 => _37.behavior]), () => ( "auto"));
1193
1197
  const mode = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _38 => _38.mode]), () => ( "preserve"));
1194
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
1195
- const scrollParents = _chunkD5LQLRSUcjs.getScrollParents.call(void 0, element);
1198
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
1199
+ const scrollParents = _chunk7SAJNRGZcjs.getScrollParents.call(void 0, element);
1196
1200
  const rootScroller = document.scrollingElement;
1197
1201
  if (rootScroller && !scrollParents.includes(rootScroller)) {
1198
1202
  scrollParents.push(rootScroller);
1199
1203
  }
1200
1204
  for (const container of scrollParents) {
1201
- const containerRect = container === rootScroller || container === document.body || container === document.documentElement ? _chunkD5LQLRSUcjs.getViewportRect.call(void 0, ) : _chunkD5LQLRSUcjs.getClientRect.call(void 0, container);
1202
- const targetRect = _chunkD5LQLRSUcjs.getClientRect.call(void 0, element);
1205
+ const containerRect = container === rootScroller || container === document.body || container === document.documentElement ? _chunk7SAJNRGZcjs.getViewportRect.call(void 0, ) : _chunk7SAJNRGZcjs.getClientRect.call(void 0, container);
1206
+ const targetRect = _chunk7SAJNRGZcjs.getClientRect.call(void 0, element);
1203
1207
  let topDelta = 0;
1204
1208
  if (targetRect.top < containerRect.top + margin.top) {
1205
1209
  topDelta = targetRect.top - (containerRect.top + margin.top);
@@ -1216,8 +1220,8 @@ var ensureElementInView = (element, margin, options) => {
1216
1220
  scrollContainerBy(container, topDelta, leftDelta, behavior);
1217
1221
  }
1218
1222
  }
1219
- const viewportRect = _chunkD5LQLRSUcjs.getViewportRect.call(void 0, );
1220
- const finalRect = _chunkD5LQLRSUcjs.getClientRect.call(void 0, element);
1223
+ const viewportRect = _chunk7SAJNRGZcjs.getViewportRect.call(void 0, );
1224
+ const finalRect = _chunk7SAJNRGZcjs.getClientRect.call(void 0, element);
1221
1225
  let viewportTopDelta = 0;
1222
1226
  if (finalRect.top < viewportRect.top + margin.top) {
1223
1227
  viewportTopDelta = finalRect.top - (viewportRect.top + margin.top);
@@ -1240,7 +1244,7 @@ var ensureElementInView = (element, margin, options) => {
1240
1244
  alignWithinViewport(element, margin, behavior, mode);
1241
1245
  };
1242
1246
  var resolveStepTarget = (target) => {
1243
- if (!_chunkD5LQLRSUcjs.isBrowser) return null;
1247
+ if (!_chunk7SAJNRGZcjs.isBrowser) return null;
1244
1248
  if (target === "screen") {
1245
1249
  return document.body;
1246
1250
  }
@@ -1271,7 +1275,7 @@ var useTourTarget = () => {
1271
1275
  const lastRectRef = _react.useRef.call(void 0, null);
1272
1276
  const initialScrollStepRef = _react.useRef.call(void 0, null);
1273
1277
  const cancelAutoScrollLoop = () => {
1274
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
1278
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
1275
1279
  if (autoScrollTimeoutRef.current !== null) {
1276
1280
  globalThis.clearTimeout(autoScrollTimeoutRef.current);
1277
1281
  autoScrollTimeoutRef.current = null;
@@ -1290,7 +1294,7 @@ var useTourTarget = () => {
1290
1294
  };
1291
1295
  }, [_optionalChain([activeStep, 'optionalAccess', _39 => _39.id])]);
1292
1296
  _react.useLayoutEffect.call(void 0, () => {
1293
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
1297
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
1294
1298
  if (!activeStep) return;
1295
1299
  if (targetInfo.status !== "ready") return;
1296
1300
  if (targetInfo.isScreen) return;
@@ -1334,7 +1338,7 @@ var useTourTarget = () => {
1334
1338
  cancelAutoScrollLoop();
1335
1339
  return;
1336
1340
  }
1337
- if (!_chunkD5LQLRSUcjs.isBrowser) {
1341
+ if (!_chunk7SAJNRGZcjs.isBrowser) {
1338
1342
  const storedRect = _nullishCoalesce(lastResolvedRectByStep.get(activeStep.id), () => ( null));
1339
1343
  setTargetInfo({
1340
1344
  element: null,
@@ -1422,7 +1426,7 @@ var useTourTarget = () => {
1422
1426
  };
1423
1427
  function updateTargetState(status, rectOverride) {
1424
1428
  if (cancelled) return;
1425
- const rect = typeof rectOverride !== "undefined" ? rectOverride : isScreen ? _chunkD5LQLRSUcjs.getViewportRect.call(void 0, ) : element ? _chunkD5LQLRSUcjs.getClientRect.call(void 0, element) : null;
1429
+ const rect = typeof rectOverride !== "undefined" ? rectOverride : isScreen ? _chunk7SAJNRGZcjs.getViewportRect.call(void 0, ) : element ? _chunk7SAJNRGZcjs.getClientRect.call(void 0, element) : null;
1426
1430
  if (status === "ready" && hasWaitForSelector && waitForStartedAt === null) {
1427
1431
  waitForStartedAt = Date.now();
1428
1432
  }
@@ -1490,14 +1494,14 @@ var useTourTarget = () => {
1490
1494
  }
1491
1495
  }
1492
1496
  function startRafMonitor() {
1493
- if (isScreen || !_chunkD5LQLRSUcjs.isBrowser) return;
1497
+ if (isScreen || !_chunk7SAJNRGZcjs.isBrowser) return;
1494
1498
  stopRaf();
1495
1499
  const tick = () => {
1496
1500
  if (cancelled) return;
1497
1501
  if (!element) {
1498
1502
  updateTargetState("resolving", null);
1499
1503
  } else {
1500
- const rect = _chunkD5LQLRSUcjs.getClientRect.call(void 0, element);
1504
+ const rect = _chunk7SAJNRGZcjs.getClientRect.call(void 0, element);
1501
1505
  if (rectChanged(rect)) {
1502
1506
  updateTargetState("ready", rect);
1503
1507
  }
@@ -1562,7 +1566,7 @@ var useTourTarget = () => {
1562
1566
  window.removeEventListener("scroll", onReposition, true);
1563
1567
  });
1564
1568
  const onAncestorScroll = () => commitInfo("ready");
1565
- scrollParents = _chunkD5LQLRSUcjs.getScrollParents.call(void 0, element);
1569
+ scrollParents = _chunk7SAJNRGZcjs.getScrollParents.call(void 0, element);
1566
1570
  if (scrollParents.length > 0) {
1567
1571
  scrollParents.forEach(
1568
1572
  (parent) => parent.addEventListener("scroll", onAncestorScroll, {
@@ -1645,7 +1649,7 @@ var useTourTarget = () => {
1645
1649
  };
1646
1650
  }, [activeStep, activeFlowId, flows, state]);
1647
1651
  _react.useEffect.call(void 0, () => {
1648
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
1652
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
1649
1653
  if (!activeStep) {
1650
1654
  cancelAutoScrollLoop();
1651
1655
  return;
@@ -1678,11 +1682,11 @@ var useTourTarget = () => {
1678
1682
  const scrollMode = _nullishCoalesce(_optionalChain([activeStep, 'access', _65 => _65.targetBehavior, 'optionalAccess', _66 => _66.scrollMode]), () => ( "center"));
1679
1683
  const runCheck = () => {
1680
1684
  autoScrollRafRef.current = null;
1681
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
1685
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
1682
1686
  if (autoState.stepId !== activeStep.id) return;
1683
1687
  if (!element.isConnected) return;
1684
- const rect = _chunkD5LQLRSUcjs.getClientRect.call(void 0, element);
1685
- const viewport = _chunkD5LQLRSUcjs.getViewportRect.call(void 0, );
1688
+ const rect = _chunk7SAJNRGZcjs.getClientRect.call(void 0, element);
1689
+ const viewport = _chunk7SAJNRGZcjs.getViewportRect.call(void 0, );
1686
1690
  const margin = resolveScrollMargin(
1687
1691
  _optionalChain([activeStep, 'access', _67 => _67.targetBehavior, 'optionalAccess', _68 => _68.scrollMargin]),
1688
1692
  DEFAULT_SCROLL_MARGIN
@@ -1734,7 +1738,7 @@ var isListenerTarget = (value) => {
1734
1738
  return !!value && typeof value.addEventListener === "function" && typeof value.removeEventListener === "function";
1735
1739
  };
1736
1740
  var resolveEventTarget = (rule, target) => {
1737
- if (!_chunkD5LQLRSUcjs.isBrowser) return null;
1741
+ if (!_chunk7SAJNRGZcjs.isBrowser) return null;
1738
1742
  if (!rule.on || rule.on === "target") {
1739
1743
  return _nullishCoalesce(target.element, () => ( null));
1740
1744
  }
@@ -1768,7 +1772,7 @@ var useAdvanceRules = (target) => {
1768
1772
  setDelayInfo
1769
1773
  } = useTour();
1770
1774
  _react.useEffect.call(void 0, () => {
1771
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
1775
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
1772
1776
  if (!state || state.status !== "running") return;
1773
1777
  if (!activeStep) return;
1774
1778
  const definition = activeFlowId ? flows.get(activeFlowId) : void 0;
@@ -1901,12 +1905,12 @@ var useAdvanceRules = (target) => {
1901
1905
  finish();
1902
1906
  }
1903
1907
  };
1904
- const initialPath = _chunkD5LQLRSUcjs.getCurrentRoutePath.call(void 0, );
1908
+ const initialPath = _chunk7SAJNRGZcjs.getCurrentRoutePath.call(void 0, );
1905
1909
  checkRoute(initialPath);
1906
1910
  if (hasResolved()) {
1907
1911
  break;
1908
1912
  }
1909
- const unsubscribe = _chunkD5LQLRSUcjs.subscribeToRouteChanges.call(void 0, (path) => {
1913
+ const unsubscribe = _chunk7SAJNRGZcjs.subscribeToRouteChanges.call(void 0, (path) => {
1910
1914
  checkRoute(path);
1911
1915
  });
1912
1916
  addCleanup(unsubscribe);
@@ -1983,7 +1987,7 @@ var useHiddenTargetFallback = ({
1983
1987
  };
1984
1988
  }, [_optionalChain([step, 'optionalAccess', _76 => _76.id])]);
1985
1989
  _react.useEffect.call(void 0, () => {
1986
- if (!_chunkD5LQLRSUcjs.isBrowser) return void 0;
1990
+ if (!_chunk7SAJNRGZcjs.isBrowser) return void 0;
1987
1991
  if (!step) return void 0;
1988
1992
  clearPendingTimeout();
1989
1993
  clearGraceTimeout();
@@ -2063,14 +2067,14 @@ var useHiddenTargetFallback = ({
2063
2067
  // src/hooks/useRouteMismatch.ts
2064
2068
 
2065
2069
  var useRouteMismatch = (step) => {
2066
- const [currentPath, setCurrentPath] = _react.useState.call(void 0, () => _chunkD5LQLRSUcjs.getCurrentRoutePath.call(void 0, ));
2070
+ const [currentPath, setCurrentPath] = _react.useState.call(void 0, () => _chunk7SAJNRGZcjs.getCurrentRoutePath.call(void 0, ));
2067
2071
  _react.useEffect.call(void 0, () => {
2068
- return _chunkD5LQLRSUcjs.subscribeToRouteChanges.call(void 0, (path) => {
2072
+ return _chunk7SAJNRGZcjs.subscribeToRouteChanges.call(void 0, (path) => {
2069
2073
  setCurrentPath(path);
2070
2074
  });
2071
2075
  }, []);
2072
2076
  const expectedRoute = _optionalChain([step, 'optionalAccess', _77 => _77.route]);
2073
- const isRouteMismatch = step !== null && expectedRoute !== void 0 && !_chunkD5LQLRSUcjs.matchRoute.call(void 0, { pattern: expectedRoute, path: currentPath });
2077
+ const isRouteMismatch = step !== null && expectedRoute !== void 0 && !_chunk7SAJNRGZcjs.matchRoute.call(void 0, { pattern: expectedRoute, path: currentPath });
2074
2078
  return {
2075
2079
  isRouteMismatch,
2076
2080
  currentPath,
@@ -2082,14 +2086,14 @@ var useRouteMismatch = (step) => {
2082
2086
 
2083
2087
  var useViewportRect = () => {
2084
2088
  const [viewport, setViewport] = _react.useState.call(void 0,
2085
- () => _chunkD5LQLRSUcjs.getViewportRect.call(void 0, )
2089
+ () => _chunk7SAJNRGZcjs.getViewportRect.call(void 0, )
2086
2090
  );
2087
2091
  const rafRef = _react.useRef.call(void 0, null);
2088
2092
  _react.useEffect.call(void 0, () => {
2089
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
2093
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
2090
2094
  const updateViewport = () => {
2091
2095
  rafRef.current = null;
2092
- setViewport(_chunkD5LQLRSUcjs.getViewportRect.call(void 0, ));
2096
+ setViewport(_chunk7SAJNRGZcjs.getViewportRect.call(void 0, ));
2093
2097
  };
2094
2098
  const scheduleUpdate = () => {
2095
2099
  if (rafRef.current !== null) return;
@@ -2395,7 +2399,7 @@ var useHudShortcuts = (target, options) => {
2395
2399
  const { state } = useTour();
2396
2400
  const { cancel, canGoBack, goBack, canGoNext, goNext, isActive } = useTourControls();
2397
2401
  _react.useEffect.call(void 0, () => {
2398
- if (!_chunkD5LQLRSUcjs.isBrowser) return void 0;
2402
+ if (!_chunk7SAJNRGZcjs.isBrowser) return void 0;
2399
2403
  if (!enabled) return void 0;
2400
2404
  if (!target) return void 0;
2401
2405
  if (!state || state.status !== "running") return void 0;
@@ -2460,20 +2464,20 @@ var useHudShortcuts = (target, options) => {
2460
2464
  // src/hooks/useTourHud.ts
2461
2465
 
2462
2466
 
2463
- // src/hooks/useBodyScrollLock.ts
2467
+ // src/hooks/useConstrainedScrollLock.ts
2464
2468
 
2465
2469
  var lockCount = 0;
2466
2470
  var previousOverflow = null;
2467
- var acquireLock = () => {
2468
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
2471
+ var acquireHardLock = () => {
2472
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
2469
2473
  if (lockCount === 0) {
2470
2474
  previousOverflow = document.body.style.overflow;
2471
2475
  document.body.style.overflow = "hidden";
2472
2476
  }
2473
2477
  lockCount += 1;
2474
2478
  };
2475
- var releaseLock = () => {
2476
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
2479
+ var releaseHardLock = () => {
2480
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
2477
2481
  if (lockCount === 0) return;
2478
2482
  lockCount -= 1;
2479
2483
  if (lockCount === 0) {
@@ -2481,14 +2485,57 @@ var releaseLock = () => {
2481
2485
  previousOverflow = null;
2482
2486
  }
2483
2487
  };
2484
- var useBodyScrollLock = (enabled) => {
2488
+ var useConstrainedScrollLock = ({
2489
+ enabled,
2490
+ targetRect,
2491
+ viewportHeight,
2492
+ padding = 0,
2493
+ bottomInset = 0
2494
+ }) => {
2495
+ const isConstrainedModeRef = _react.useRef.call(void 0, false);
2496
+ const boundsRef = _react.useRef.call(void 0, { minY: 0, maxY: 0 });
2497
+ const targetHeight = targetRect ? targetRect.height + padding * 2 : 0;
2498
+ const effectiveViewportHeight = viewportHeight - bottomInset;
2499
+ const isConstrainedMode = enabled && Boolean(targetRect) && targetHeight > effectiveViewportHeight;
2485
2500
  _react.useEffect.call(void 0, () => {
2486
- if (!enabled) return;
2487
- acquireLock();
2501
+ if (!enabled || !_chunk7SAJNRGZcjs.isBrowser) return;
2502
+ const targetHeight2 = targetRect ? targetRect.height + padding * 2 : 0;
2503
+ const effectiveViewportHeight2 = viewportHeight - bottomInset;
2504
+ const targetExceedsViewport = targetRect && targetHeight2 > effectiveViewportHeight2;
2505
+ if (!targetExceedsViewport) {
2506
+ acquireHardLock();
2507
+ isConstrainedModeRef.current = false;
2508
+ return () => {
2509
+ releaseHardLock();
2510
+ };
2511
+ }
2512
+ isConstrainedModeRef.current = true;
2513
+ const targetTop = targetRect.top - padding;
2514
+ const targetBottom = targetRect.bottom + padding;
2515
+ const currentScroll = window.scrollY;
2516
+ const minY = currentScroll + targetTop;
2517
+ const maxY = currentScroll + targetBottom - effectiveViewportHeight2;
2518
+ boundsRef.current = {
2519
+ minY: Math.max(0, minY),
2520
+ maxY: Math.max(0, maxY)
2521
+ };
2522
+ const handleScroll = () => {
2523
+ const { minY: minY2, maxY: maxY2 } = boundsRef.current;
2524
+ const currentY = window.scrollY;
2525
+ if (currentY < minY2) {
2526
+ window.scrollTo({ top: minY2, behavior: "auto" });
2527
+ } else if (currentY > maxY2) {
2528
+ window.scrollTo({ top: maxY2, behavior: "auto" });
2529
+ }
2530
+ };
2531
+ handleScroll();
2532
+ window.addEventListener("scroll", handleScroll, { passive: false });
2488
2533
  return () => {
2489
- releaseLock();
2534
+ window.removeEventListener("scroll", handleScroll);
2535
+ isConstrainedModeRef.current = false;
2490
2536
  };
2491
- }, [enabled]);
2537
+ }, [enabled, targetRect, viewportHeight, padding, bottomInset]);
2538
+ return { isConstrainedMode };
2492
2539
  };
2493
2540
 
2494
2541
  // src/hooks/useHudTargetIssue.ts
@@ -2535,7 +2582,7 @@ var useHudTargetIssue = (target, options) => {
2535
2582
  setArmed(false);
2536
2583
  return;
2537
2584
  }
2538
- if (!_chunkD5LQLRSUcjs.isBrowser) {
2585
+ if (!_chunk7SAJNRGZcjs.isBrowser) {
2539
2586
  setArmed(true);
2540
2587
  return;
2541
2588
  }
@@ -2558,7 +2605,8 @@ var useTourHud = (options = {}) => {
2558
2605
  const {
2559
2606
  overlayPadding,
2560
2607
  overlayRadius,
2561
- bodyScrollLock = DEFAULT_BODY_SCROLL_LOCK
2608
+ bodyScrollLock = DEFAULT_BODY_SCROLL_LOCK,
2609
+ scrollLockBottomInset
2562
2610
  } = options;
2563
2611
  const shortcuts = _nullishCoalesce(options.shortcuts, () => ( DEFAULT_SHORTCUTS));
2564
2612
  const { backdropInteraction, lockBodyScroll } = useTour();
@@ -2571,10 +2619,17 @@ var useTourHud = (options = {}) => {
2571
2619
  fallbackAriaDescribedBy: _optionalChain([popoverOptions, 'optionalAccess', _100 => _100.ariaDescribedBy])
2572
2620
  });
2573
2621
  const targetIssue = useHudTargetIssue(hudState.hudTarget);
2622
+ const viewport = useViewportRect();
2574
2623
  const shouldLockBodyScroll = Boolean(
2575
2624
  bodyScrollLock && (_nullishCoalesce(_optionalChain([hudState, 'access', _101 => _101.flowHudOptions, 'optionalAccess', _102 => _102.behavior, 'optionalAccess', _103 => _103.lockBodyScroll]), () => ( lockBodyScroll))) && hudState.focusTrapActive
2576
2625
  );
2577
- useBodyScrollLock(shouldLockBodyScroll);
2626
+ const { isConstrainedMode: isConstrainedScrollActive } = useConstrainedScrollLock({
2627
+ enabled: shouldLockBodyScroll,
2628
+ targetRect: hudState.hudTarget.rect,
2629
+ viewportHeight: viewport.height,
2630
+ padding: _nullishCoalesce(overlayPadding, () => ( 12)),
2631
+ bottomInset: scrollLockBottomInset
2632
+ });
2578
2633
  const shortcutOptions = typeof shortcuts === "object" ? shortcuts : {};
2579
2634
  const shortcutsEnabled = Boolean(
2580
2635
  (typeof shortcuts === "boolean" ? shortcuts : _nullishCoalesce(shortcuts.enabled, () => ( true))) && hudState.shouldRender
@@ -2631,7 +2686,8 @@ var useTourHud = (options = {}) => {
2631
2686
  focusManager,
2632
2687
  targetIssue,
2633
2688
  shouldLockBodyScroll,
2634
- shortcutsEnabled
2689
+ shortcutsEnabled,
2690
+ isConstrainedScrollActive
2635
2691
  };
2636
2692
  };
2637
2693
 
@@ -2652,7 +2708,7 @@ var useTourOverlay = (options) => {
2652
2708
  const hasShownRef = _react.useRef.call(void 0, false);
2653
2709
  const lastReadyTargetRef = _react.useRef.call(void 0, null);
2654
2710
  _react.useEffect.call(void 0, () => {
2655
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
2711
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
2656
2712
  if (target.status === "ready") {
2657
2713
  hasShownRef.current = true;
2658
2714
  lastReadyTargetRef.current = {
@@ -2666,12 +2722,12 @@ var useTourOverlay = (options) => {
2666
2722
  lastReadyTargetRef.current = null;
2667
2723
  }
2668
2724
  }, [target, isInGracePeriod]);
2669
- const viewport = _chunkD5LQLRSUcjs.getViewportRect.call(void 0, );
2725
+ const viewport = _chunk7SAJNRGZcjs.getViewportRect.call(void 0, );
2670
2726
  const cachedTarget = lastReadyTargetRef.current;
2671
2727
  const highlightTarget = target.status === "ready" ? target : cachedTarget;
2672
2728
  const resolvedRect = _nullishCoalesce(_optionalChain([highlightTarget, 'optionalAccess', _122 => _122.rect]), () => ( target.rect));
2673
2729
  const resolvedIsScreen = _nullishCoalesce(_optionalChain([highlightTarget, 'optionalAccess', _123 => _123.isScreen]), () => ( target.isScreen));
2674
- const expandedRect = resolvedIsScreen || !resolvedRect ? viewport : _chunkD5LQLRSUcjs.expandRect.call(void 0, resolvedRect, padding);
2730
+ const expandedRect = resolvedIsScreen || !resolvedRect ? viewport : _chunk7SAJNRGZcjs.expandRect.call(void 0, resolvedRect, padding);
2675
2731
  const safeBuffer = Math.max(0, edgeBuffer);
2676
2732
  const insetTop = expandedRect.top <= 0 ? Math.min(safeBuffer, Math.max(0, expandedRect.height) / 2) : 0;
2677
2733
  const insetLeft = expandedRect.left <= 0 ? Math.min(safeBuffer, Math.max(0, expandedRect.width) / 2) : 0;
@@ -2701,7 +2757,7 @@ var useTourOverlay = (options) => {
2701
2757
  height: highlightHeight,
2702
2758
  radius: highlightRadius
2703
2759
  } : null;
2704
- const maskCapable = _react.useMemo.call(void 0, () => _chunkD5LQLRSUcjs.supportsMasking.call(void 0, ), []);
2760
+ const maskCapable = _react.useMemo.call(void 0, () => _chunk7SAJNRGZcjs.supportsMasking.call(void 0, ), []);
2705
2761
  const isActive = target.status === "ready" || target.status === "resolving" && cachedTarget !== null || isInGracePeriod;
2706
2762
  const shouldMask = maskCapable && isActive;
2707
2763
  const maskId = _react.useMemo.call(void 0,
@@ -3089,7 +3145,7 @@ var useDelayAdvance = () => {
3089
3145
  if (!delayInfo) return;
3090
3146
  if (!activeStep || activeStep.id !== delayInfo.stepId) return;
3091
3147
  if (!state || state.status !== "running") return;
3092
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
3148
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
3093
3149
  let frameId = null;
3094
3150
  const tick = () => {
3095
3151
  setNow(getTimestamp());
@@ -3233,8 +3289,8 @@ var OverlayBackdrop = ({
3233
3289
  showInteractionBlocker = true,
3234
3290
  transitionsOverride
3235
3291
  }) => {
3236
- if (!_chunkD5LQLRSUcjs.isBrowser) return null;
3237
- const host = _chunkD5LQLRSUcjs.portalHost.call(void 0, );
3292
+ if (!_chunk7SAJNRGZcjs.isBrowser) return null;
3293
+ const host = _chunk7SAJNRGZcjs.portalHost.call(void 0, );
3238
3294
  if (!host) return null;
3239
3295
  const adapter = useAnimationAdapter();
3240
3296
  const {
@@ -3545,8 +3601,8 @@ var TourPopoverPortal = ({
3545
3601
  transitionsOverride,
3546
3602
  isInGracePeriod = false
3547
3603
  }) => {
3548
- if (!_chunkD5LQLRSUcjs.isBrowser) return null;
3549
- const host = _chunkD5LQLRSUcjs.portalHost.call(void 0, );
3604
+ if (!_chunk7SAJNRGZcjs.isBrowser) return null;
3605
+ const host = _chunk7SAJNRGZcjs.portalHost.call(void 0, );
3550
3606
  if (!host) return null;
3551
3607
  const adapter = useAnimationAdapter();
3552
3608
  const Container = _nullishCoalesce(containerComponent, () => ( adapter.components.MotionDiv));
@@ -3621,7 +3677,7 @@ var TourPopoverPortal = ({
3621
3677
  });
3622
3678
  const overflowRetryTimeoutRef = _react.useRef.call(void 0, null);
3623
3679
  _react.useLayoutEffect.call(void 0, () => {
3624
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
3680
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
3625
3681
  const node = floatingRef.current;
3626
3682
  if (!node) return;
3627
3683
  const updateSize = () => {
@@ -3775,7 +3831,7 @@ var TourPopoverPortal = ({
3775
3831
  };
3776
3832
  }, []);
3777
3833
  _react.useLayoutEffect.call(void 0, () => {
3778
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
3834
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
3779
3835
  const floatingEl = floatingRef.current;
3780
3836
  const rectInfo = target.rect;
3781
3837
  if (!floatingEl) return;
@@ -3830,7 +3886,7 @@ var TourPopoverPortal = ({
3830
3886
  });
3831
3887
  if (cancelState.cancelled) return;
3832
3888
  const floatingBox = floatingEl.getBoundingClientRect();
3833
- const viewportRect = _chunkD5LQLRSUcjs.getViewportRect.call(void 0, );
3889
+ const viewportRect = _chunk7SAJNRGZcjs.getViewportRect.call(void 0, );
3834
3890
  const viewportTop = viewportRect.top;
3835
3891
  const viewportBottom = viewportRect.top + viewportRect.height;
3836
3892
  const viewportLeft = viewportRect.left;
@@ -3925,7 +3981,7 @@ var TourPopoverPortal = ({
3925
3981
  });
3926
3982
  }, [dragPosition, layoutMode]);
3927
3983
  const clampToViewport = (rawLeft, rawTop) => {
3928
- const rect = _chunkD5LQLRSUcjs.getViewportRect.call(void 0, );
3984
+ const rect = _chunk7SAJNRGZcjs.getViewportRect.call(void 0, );
3929
3985
  const floatingEl = floatingRef.current;
3930
3986
  const floatingElWidth = _nullishCoalesce(_optionalChain([floatingEl, 'optionalAccess', _161 => _161.offsetWidth]), () => ( 0));
3931
3987
  const floatingElHeight = _nullishCoalesce(_optionalChain([floatingEl, 'optionalAccess', _162 => _162.offsetHeight]), () => ( 0));
@@ -4192,7 +4248,7 @@ var TourFocusManager = ({
4192
4248
  }
4193
4249
  };
4194
4250
  _react.useLayoutEffect.call(void 0, () => {
4195
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
4251
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
4196
4252
  if (!active) {
4197
4253
  restoreFocus();
4198
4254
  return;
@@ -4208,7 +4264,7 @@ var TourFocusManager = ({
4208
4264
  };
4209
4265
  }, [active, popoverNode, target.element]);
4210
4266
  _react.useEffect.call(void 0, () => {
4211
- if (!_chunkD5LQLRSUcjs.isBrowser) return;
4267
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
4212
4268
  if (!active) return;
4213
4269
  const doc = _nullishCoalesce(_nullishCoalesce(_optionalChain([popoverNode, 'optionalAccess', _167 => _167.ownerDocument]), () => ( _optionalChain([target, 'access', _168 => _168.element, 'optionalAccess', _169 => _169.ownerDocument]))), () => ( document));
4214
4270
  const createGuard = (key) => {
@@ -4408,8 +4464,8 @@ var TourFocusManager = ({
4408
4464
  setPopoverRect(null);
4409
4465
  }
4410
4466
  }, [popoverRingActive, popoverNode]);
4411
- if (!_chunkD5LQLRSUcjs.isBrowser) return null;
4412
- const host = _chunkD5LQLRSUcjs.portalHost.call(void 0, );
4467
+ if (!_chunk7SAJNRGZcjs.isBrowser) return null;
4468
+ const host = _chunk7SAJNRGZcjs.portalHost.call(void 0, );
4413
4469
  if (!host) return null;
4414
4470
  const boxShadow = _nullishCoalesce(_optionalChain([guardElementFocusRing, 'optionalAccess', _181 => _181.boxShadow]), () => ( DEFAULT_BOX_SHADOW));
4415
4471
  const showTargetRing = targetRingActive && highlightRect;
@@ -4501,6 +4557,38 @@ var useHudMotion = () => {
4501
4557
  }, [adapter]);
4502
4558
  };
4503
4559
 
4560
+ // src/hooks/useBodyScrollLock.ts
4561
+
4562
+ var lockCount2 = 0;
4563
+ var previousOverflow2 = null;
4564
+ var acquireLock = () => {
4565
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
4566
+ if (lockCount2 === 0) {
4567
+ previousOverflow2 = document.body.style.overflow;
4568
+ document.body.style.overflow = "hidden";
4569
+ }
4570
+ lockCount2 += 1;
4571
+ };
4572
+ var releaseLock = () => {
4573
+ if (!_chunk7SAJNRGZcjs.isBrowser) return;
4574
+ if (lockCount2 === 0) return;
4575
+ lockCount2 -= 1;
4576
+ if (lockCount2 === 0) {
4577
+ document.body.style.overflow = _nullishCoalesce(previousOverflow2, () => ( ""));
4578
+ previousOverflow2 = null;
4579
+ }
4580
+ };
4581
+ var useBodyScrollLock = (enabled) => {
4582
+ _react.useEffect.call(void 0, () => {
4583
+ if (!enabled) return;
4584
+ acquireLock();
4585
+ return () => {
4586
+ releaseLock();
4587
+ };
4588
+ }, [enabled]);
4589
+ };
4590
+
4591
+
4504
4592
 
4505
4593
 
4506
4594
 
@@ -4540,4 +4628,4 @@ var useHudMotion = () => {
4540
4628
 
4541
4629
 
4542
4630
 
4543
- exports.AnimationAdapterProvider = AnimationAdapterProvider; exports.DialogRegistryProvider = DialogRegistryProvider; exports.OverlayBackdrop = OverlayBackdrop; exports.TourFocusManager = TourFocusManager; exports.TourPopoverPortal = TourPopoverPortal; exports.TourProvider = TourProvider; exports.createPathString = _chunkD5LQLRSUcjs.createPathString; exports.createWaitForPredicateController = createWaitForPredicateController; exports.defaultAnimationAdapter = defaultAnimationAdapter; exports.defaultLabels = defaultLabels; exports.getCurrentRoutePath = _chunkD5LQLRSUcjs.getCurrentRoutePath; exports.notifyRouteChange = _chunkD5LQLRSUcjs.notifyRouteChange; exports.reducedMotionAnimationAdapter = reducedMotionAnimationAdapter; exports.subscribeToRouteChanges = _chunkD5LQLRSUcjs.subscribeToRouteChanges; exports.useAdvanceRules = useAdvanceRules; exports.useAnimationAdapter = useAnimationAdapter; exports.useBodyScrollLock = useBodyScrollLock; exports.useDelayAdvance = useDelayAdvance; exports.useDialogRegistry = useDialogRegistry; exports.useDialogRegistryOptional = useDialogRegistryOptional; exports.useHiddenTargetFallback = useHiddenTargetFallback; exports.useHudDescription = useHudDescription; exports.useHudMotion = useHudMotion; exports.useHudShortcuts = useHudShortcuts; exports.useHudState = useHudState; exports.useHudTargetIssue = useHudTargetIssue; exports.usePreferredAnimationAdapter = usePreferredAnimationAdapter; exports.useRadixDialogAdapter = useRadixDialogAdapter; exports.useRadixTourDialog = useRadixTourDialog; exports.useTour = useTour; exports.useTourControls = useTourControls; exports.useTourEvents = useTourEvents; exports.useTourFocusDominance = useTourFocusDominance; exports.useTourHud = useTourHud; exports.useTourLabels = useTourLabels; exports.useTourOverlay = useTourOverlay; exports.useTourTarget = useTourTarget; exports.useViewportRect = useViewportRect; exports.waitForDom = waitForDom;
4631
+ exports.AnimationAdapterProvider = AnimationAdapterProvider; exports.DialogRegistryProvider = DialogRegistryProvider; exports.OverlayBackdrop = OverlayBackdrop; exports.TourFocusManager = TourFocusManager; exports.TourPopoverPortal = TourPopoverPortal; exports.TourProvider = TourProvider; exports.createPathString = _chunk7SAJNRGZcjs.createPathString; exports.createWaitForPredicateController = createWaitForPredicateController; exports.defaultAnimationAdapter = defaultAnimationAdapter; exports.defaultLabels = defaultLabels; exports.getCurrentRoutePath = _chunk7SAJNRGZcjs.getCurrentRoutePath; exports.notifyRouteChange = _chunk7SAJNRGZcjs.notifyRouteChange; exports.reducedMotionAnimationAdapter = reducedMotionAnimationAdapter; exports.subscribeToRouteChanges = _chunk7SAJNRGZcjs.subscribeToRouteChanges; exports.useAdvanceRules = useAdvanceRules; exports.useAnimationAdapter = useAnimationAdapter; exports.useBodyScrollLock = useBodyScrollLock; exports.useConstrainedScrollLock = useConstrainedScrollLock; exports.useDelayAdvance = useDelayAdvance; exports.useDialogRegistry = useDialogRegistry; exports.useDialogRegistryOptional = useDialogRegistryOptional; exports.useHiddenTargetFallback = useHiddenTargetFallback; exports.useHudDescription = useHudDescription; exports.useHudMotion = useHudMotion; exports.useHudShortcuts = useHudShortcuts; exports.useHudState = useHudState; exports.useHudTargetIssue = useHudTargetIssue; exports.usePreferredAnimationAdapter = usePreferredAnimationAdapter; exports.useRadixDialogAdapter = useRadixDialogAdapter; exports.useRadixTourDialog = useRadixTourDialog; exports.useTour = useTour; exports.useTourControls = useTourControls; exports.useTourEvents = useTourEvents; exports.useTourFocusDominance = useTourFocusDominance; exports.useTourHud = useTourHud; exports.useTourLabels = useTourLabels; exports.useTourOverlay = useTourOverlay; exports.useTourTarget = useTourTarget; exports.useViewportRect = useViewportRect; exports.waitForDom = waitForDom;
package/dist/index.d.ts CHANGED
@@ -41,6 +41,8 @@ export { useHudMotion } from './motion/useHudMotion';
41
41
  export type { UseHudMotionResult } from './motion/useHudMotion';
42
42
  export { useAdvanceRules } from './hooks/useAdvanceRules';
43
43
  export { useBodyScrollLock } from './hooks/useBodyScrollLock';
44
+ export { useConstrainedScrollLock } from './hooks/useConstrainedScrollLock';
45
+ export type { ConstrainedScrollLockOptions } from './hooks/useConstrainedScrollLock';
44
46
  export { useHiddenTargetFallback } from './hooks/useHiddenTargetFallback';
45
47
  export type { UseHiddenTargetFallbackConfig, UseHiddenTargetFallbackResult, } from './hooks/useHiddenTargetFallback';
46
48
  export { useViewportRect } from './hooks/useViewportRect';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}