@flowsterix/react 0.13.0 → 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/{chunk-D5LQLRSU.cjs → chunk-7SAJNRGZ.cjs} +2 -2
- package/dist/{chunk-B44EX7YT.mjs → chunk-J2JMZXGD.mjs} +2 -2
- package/dist/context.d.ts +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/devtools/globalBridge.d.ts.map +1 -1
- package/dist/devtools/hooks/useStepStore.d.ts.map +1 -1
- package/dist/devtools/index.cjs +4 -2
- package/dist/devtools/index.mjs +4 -2
- package/dist/hooks/useConstrainedScrollLock.d.ts +12 -1
- package/dist/hooks/useConstrainedScrollLock.d.ts.map +1 -1
- package/dist/hooks/useTourHud.d.ts +8 -0
- package/dist/hooks/useTourHud.d.ts.map +1 -1
- package/dist/index.cjs +88 -75
- package/dist/index.mjs +25 -12
- package/dist/router/index.cjs +2 -2
- package/dist/router/index.mjs +1 -1
- package/dist/router/nextAppRouterAdapter.cjs +3 -3
- package/dist/router/nextAppRouterAdapter.mjs +1 -1
- package/dist/router/nextPagesRouterAdapter.cjs +3 -3
- package/dist/router/nextPagesRouterAdapter.mjs +1 -1
- package/dist/router/reactRouterAdapter.cjs +3 -3
- package/dist/router/reactRouterAdapter.mjs +1 -1
- package/dist/router/tanstackRouterAdapter.cjs +3 -3
- package/dist/router/tanstackRouterAdapter.mjs +1 -1
- package/dist/utils/dom.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -41,8 +41,8 @@ var expandRect = (rect, padding) => {
|
|
|
41
41
|
const spaceBottom = viewport.height - rect.bottom;
|
|
42
42
|
const spaceLeft = rect.left;
|
|
43
43
|
const spaceRight = viewport.width - rect.right;
|
|
44
|
-
const verticalPadding = Math.min(padding, spaceTop, spaceBottom);
|
|
45
|
-
const horizontalPadding = Math.min(padding, spaceLeft, spaceRight);
|
|
44
|
+
const verticalPadding = Math.max(0, Math.min(padding, spaceTop, spaceBottom));
|
|
45
|
+
const horizontalPadding = Math.max(0, Math.min(padding, spaceLeft, spaceRight));
|
|
46
46
|
return createRect({
|
|
47
47
|
top: rect.top - verticalPadding,
|
|
48
48
|
left: rect.left - horizontalPadding,
|
|
@@ -41,8 +41,8 @@ var expandRect = (rect, padding) => {
|
|
|
41
41
|
const spaceBottom = viewport.height - rect.bottom;
|
|
42
42
|
const spaceLeft = rect.left;
|
|
43
43
|
const spaceRight = viewport.width - rect.right;
|
|
44
|
-
const verticalPadding = Math.min(padding, spaceTop, spaceBottom);
|
|
45
|
-
const horizontalPadding = Math.min(padding, spaceLeft, spaceRight);
|
|
44
|
+
const verticalPadding = Math.max(0, Math.min(padding, spaceTop, spaceBottom));
|
|
45
|
+
const horizontalPadding = Math.max(0, Math.min(padding, spaceLeft, spaceRight));
|
|
46
46
|
return createRect({
|
|
47
47
|
top: rect.top - verticalPadding,
|
|
48
48
|
left: rect.left - horizontalPadding,
|
package/dist/context.d.ts
CHANGED
|
@@ -41,7 +41,7 @@ export interface TourContextValue {
|
|
|
41
41
|
resume: () => MaybePromise<FlowState>;
|
|
42
42
|
cancel: (reason?: FlowCancelReason) => MaybePromise<FlowState>;
|
|
43
43
|
complete: () => MaybePromise<FlowState>;
|
|
44
|
-
advanceStep: (stepId: string) => MaybePromise<FlowState>;
|
|
44
|
+
advanceStep: (stepId: string) => MaybePromise<FlowState | null>;
|
|
45
45
|
events: EventBus<FlowEvents<ReactNode>> | null;
|
|
46
46
|
debugEnabled: boolean;
|
|
47
47
|
setDebugEnabled: (value: boolean) => void;
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EACZ,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,SAAS,EAET,YAAY,EAEZ,gBAAgB,EAChB,IAAI,EACJ,cAAc,EAEd,mBAAmB,EACpB,MAAM,kBAAkB,CAAA;AAczB,OAAO,KAAK,EACV,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,cAAc,EACf,MAAM,OAAO,CAAA;AAUd,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAkBjE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;IACvC,QAAQ,EAAE,SAAS,CAAA;IACnB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,oBAAoB,CAAC,EAAE,gBAAgB,CAAA;IACvC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,SAAS,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAC5C,mBAAmB,CAAC,EAAE,uBAAuB,CAAA;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC5B,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAA;CACxD;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;IAC7C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IAClC,kBAAkB,EAAE,YAAY,GAAG,SAAS,CAAA;IAC5C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,YAAY,CAAC,SAAS,CAAC,CAAA;IAClF,IAAI,EAAE,MAAM,YAAY,CAAC,SAAS,CAAC,CAAA;IACnC,IAAI,EAAE,MAAM,YAAY,CAAC,SAAS,CAAC,CAAA;IACnC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,YAAY,CAAC,SAAS,CAAC,CAAA;IAC5D,KAAK,EAAE,MAAM,YAAY,CAAC,SAAS,CAAC,CAAA;IACpC,MAAM,EAAE,MAAM,YAAY,CAAC,SAAS,CAAC,CAAA;IACrC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,gBAAgB,KAAK,YAAY,CAAC,SAAS,CAAC,CAAA;IAC9D,QAAQ,EAAE,MAAM,YAAY,CAAC,SAAS,CAAC,CAAA;IACvC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,YAAY,CAAC,SAAS,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalBridge.d.ts","sourceRoot":"","sources":["../../src/devtools/globalBridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;IAC7C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAC3D,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACvE;AAED,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"globalBridge.d.ts","sourceRoot":"","sources":["../../src/devtools/globalBridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;IAC7C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAC3D,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACvE;AAED,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,CAAA;AAuB3D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAMzE;AAED,wBAAgB,iBAAiB,IAAI,mBAAmB,GAAG,IAAI,CAE9D;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI,CAMtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStepStore.d.ts","sourceRoot":"","sources":["../../../src/devtools/hooks/useStepStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"useStepStore.d.ts","sourceRoot":"","sources":["../../../src/devtools/hooks/useStepStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAsCxE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,OAAO,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,KAAK,WAAW,CAAA;IACvD,UAAU,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAC5C,UAAU,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;KAAE,KAAK,IAAI,CAAA;IAC3E,YAAY,EAAE,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACtE,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,WAAW,EAAE,MAAM,cAAc,CAAA;CAClC;AAED,wBAAgB,YAAY,IAAI,kBAAkB,CAmIjD"}
|
package/dist/devtools/index.cjs
CHANGED
|
@@ -1469,9 +1469,10 @@ function TabNav(props) {
|
|
|
1469
1469
|
|
|
1470
1470
|
// src/devtools/globalBridge.ts
|
|
1471
1471
|
var BRIDGE_KEY = "__FLOWSTERIX_DEVTOOLS_BRIDGE__";
|
|
1472
|
+
var SERVER_BRIDGE = { value: null, listeners: /* @__PURE__ */ new Set() };
|
|
1472
1473
|
function getBridge() {
|
|
1473
1474
|
if (typeof window === "undefined") {
|
|
1474
|
-
return
|
|
1475
|
+
return SERVER_BRIDGE;
|
|
1475
1476
|
}
|
|
1476
1477
|
const w = window;
|
|
1477
1478
|
if (!w[BRIDGE_KEY]) {
|
|
@@ -2568,8 +2569,9 @@ function subscribe(listener) {
|
|
|
2568
2569
|
function getSnapshot() {
|
|
2569
2570
|
return store.steps;
|
|
2570
2571
|
}
|
|
2572
|
+
var SERVER_SNAPSHOT = [];
|
|
2571
2573
|
function getServerSnapshot() {
|
|
2572
|
-
return
|
|
2574
|
+
return SERVER_SNAPSHOT;
|
|
2573
2575
|
}
|
|
2574
2576
|
function generateId() {
|
|
2575
2577
|
return `step-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
|
package/dist/devtools/index.mjs
CHANGED
|
@@ -1469,9 +1469,10 @@ import { useCallback as useCallback2, useEffect as useEffect4, useState as useSt
|
|
|
1469
1469
|
|
|
1470
1470
|
// src/devtools/globalBridge.ts
|
|
1471
1471
|
var BRIDGE_KEY = "__FLOWSTERIX_DEVTOOLS_BRIDGE__";
|
|
1472
|
+
var SERVER_BRIDGE = { value: null, listeners: /* @__PURE__ */ new Set() };
|
|
1472
1473
|
function getBridge() {
|
|
1473
1474
|
if (typeof window === "undefined") {
|
|
1474
|
-
return
|
|
1475
|
+
return SERVER_BRIDGE;
|
|
1475
1476
|
}
|
|
1476
1477
|
const w = window;
|
|
1477
1478
|
if (!w[BRIDGE_KEY]) {
|
|
@@ -2568,8 +2569,9 @@ function subscribe(listener) {
|
|
|
2568
2569
|
function getSnapshot() {
|
|
2569
2570
|
return store.steps;
|
|
2570
2571
|
}
|
|
2572
|
+
var SERVER_SNAPSHOT = [];
|
|
2571
2573
|
function getServerSnapshot() {
|
|
2572
|
-
return
|
|
2574
|
+
return SERVER_SNAPSHOT;
|
|
2573
2575
|
}
|
|
2574
2576
|
function generateId() {
|
|
2575
2577
|
return `step-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
|
|
@@ -18,6 +18,13 @@ export interface ConstrainedScrollLockOptions {
|
|
|
18
18
|
* Default: 0
|
|
19
19
|
*/
|
|
20
20
|
padding?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Bottom inset in pixels (e.g. mobile drawer height) to account for
|
|
23
|
+
* when calculating scroll bounds. Increases maxY so users can scroll
|
|
24
|
+
* the target bottom into view above the inset area.
|
|
25
|
+
* Default: 0
|
|
26
|
+
*/
|
|
27
|
+
bottomInset?: number;
|
|
21
28
|
}
|
|
22
29
|
/**
|
|
23
30
|
* Enhanced scroll lock that allows constrained scrolling when target is larger than viewport.
|
|
@@ -25,5 +32,9 @@ export interface ConstrainedScrollLockOptions {
|
|
|
25
32
|
* - If target fits in viewport: normal scroll lock (overflow: hidden)
|
|
26
33
|
* - If target > viewport: allow scrolling within target bounds only
|
|
27
34
|
*/
|
|
28
|
-
export
|
|
35
|
+
export interface ConstrainedScrollLockResult {
|
|
36
|
+
/** Whether constrained scroll mode is active (target exceeds effective viewport). */
|
|
37
|
+
isConstrainedMode: boolean;
|
|
38
|
+
}
|
|
39
|
+
export declare const useConstrainedScrollLock: ({ enabled, targetRect, viewportHeight, padding, bottomInset, }: ConstrainedScrollLockOptions) => ConstrainedScrollLockResult;
|
|
29
40
|
//# sourceMappingURL=useConstrainedScrollLock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConstrainedScrollLock.d.ts","sourceRoot":"","sources":["../../src/hooks/useConstrainedScrollLock.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAGlD,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,UAAU,EAAE,cAAc,GAAG,IAAI,CAAA;IACjC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"useConstrainedScrollLock.d.ts","sourceRoot":"","sources":["../../src/hooks/useConstrainedScrollLock.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAGlD,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,UAAU,EAAE,cAAc,GAAG,IAAI,CAAA;IACjC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAwBD;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,qFAAqF;IACrF,iBAAiB,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,wBAAwB,GAAI,gEAMtC,4BAA4B,KAAG,2BAqEjC,CAAA"}
|
|
@@ -18,6 +18,12 @@ export interface UseTourHudOptions {
|
|
|
18
18
|
* Enabled by default.
|
|
19
19
|
*/
|
|
20
20
|
bodyScrollLock?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Bottom inset in pixels for constrained scroll lock (e.g. mobile drawer height).
|
|
23
|
+
* When a target is taller than the viewport, this ensures users can scroll
|
|
24
|
+
* the target bottom into view above the inset area.
|
|
25
|
+
*/
|
|
26
|
+
scrollLockBottomInset?: number;
|
|
21
27
|
}
|
|
22
28
|
export interface TourHudOverlayConfig {
|
|
23
29
|
padding?: number;
|
|
@@ -59,6 +65,8 @@ export interface UseTourHudResult {
|
|
|
59
65
|
targetIssue: UseHudTargetIssueResult;
|
|
60
66
|
shouldLockBodyScroll: boolean;
|
|
61
67
|
shortcutsEnabled: boolean;
|
|
68
|
+
/** Whether constrained scroll mode is active (target taller than viewport). */
|
|
69
|
+
isConstrainedScrollActive: boolean;
|
|
62
70
|
}
|
|
63
71
|
export declare const useTourHud: (options?: UseTourHudOptions) => UseTourHudResult;
|
|
64
72
|
//# sourceMappingURL=useTourHud.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTourHud.d.ts","sourceRoot":"","sources":["../../src/hooks/useTourHud.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAMtC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAElE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAA;IAC5C;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"useTourHud.d.ts","sourceRoot":"","sources":["../../src/hooks/useTourHud.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAMtC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAElE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAA;IAC5C;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,uBAAuB,CAAA;CACzC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAA;CACzC;AAED,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IACjE;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,cAAc,CAAA;IACtB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,cAAc,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAA;IAClD,qBAAqB,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,OAAO,EAAE,oBAAoB,CAAA;IAC7B,OAAO,EAAE,oBAAoB,CAAA;IAC7B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,YAAY,EAAE,wBAAwB,CAAA;IACtC,WAAW,EAAE,uBAAuB,CAAA;IACpC,oBAAoB,EAAE,OAAO,CAAA;IAC7B,gBAAgB,EAAE,OAAO,CAAA;IACzB,+EAA+E;IAC/E,yBAAyB,EAAE,OAAO,CAAA;CACnC;AAKD,eAAO,MAAM,UAAU,GACrB,UAAS,iBAAsB,KAC9B,gBAyGF,CAAA"}
|
package/dist/index.cjs
CHANGED
|
@@ -15,7 +15,7 @@ require('./chunk-HPVLOLCD.cjs');
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
var
|
|
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 &&
|
|
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 &&
|
|
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 ||
|
|
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 =
|
|
673
|
+
const currentPath = _chunk7SAJNRGZcjs.getCurrentRoutePath.call(void 0, );
|
|
674
674
|
tryStart(currentPath);
|
|
675
|
-
const unsubscribe =
|
|
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) =>
|
|
720
|
-
|
|
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 (!
|
|
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 (!
|
|
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 =
|
|
1180
|
-
const finalRect =
|
|
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 (!
|
|
1195
|
-
const scrollParents =
|
|
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 ?
|
|
1202
|
-
const targetRect =
|
|
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 =
|
|
1220
|
-
const finalRect =
|
|
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 (!
|
|
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 (!
|
|
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 (!
|
|
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 (!
|
|
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 ?
|
|
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 || !
|
|
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 =
|
|
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 =
|
|
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 (!
|
|
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 (!
|
|
1685
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) return;
|
|
1682
1686
|
if (autoState.stepId !== activeStep.id) return;
|
|
1683
1687
|
if (!element.isConnected) return;
|
|
1684
|
-
const rect =
|
|
1685
|
-
const viewport =
|
|
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 (!
|
|
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 (!
|
|
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 =
|
|
1908
|
+
const initialPath = _chunk7SAJNRGZcjs.getCurrentRoutePath.call(void 0, );
|
|
1905
1909
|
checkRoute(initialPath);
|
|
1906
1910
|
if (hasResolved()) {
|
|
1907
1911
|
break;
|
|
1908
1912
|
}
|
|
1909
|
-
const unsubscribe =
|
|
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 (!
|
|
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, () =>
|
|
2070
|
+
const [currentPath, setCurrentPath] = _react.useState.call(void 0, () => _chunk7SAJNRGZcjs.getCurrentRoutePath.call(void 0, ));
|
|
2067
2071
|
_react.useEffect.call(void 0, () => {
|
|
2068
|
-
return
|
|
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 && !
|
|
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
|
-
() =>
|
|
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 (!
|
|
2093
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) return;
|
|
2090
2094
|
const updateViewport = () => {
|
|
2091
2095
|
rafRef.current = null;
|
|
2092
|
-
setViewport(
|
|
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 (!
|
|
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;
|
|
@@ -2465,7 +2469,7 @@ var useHudShortcuts = (target, options) => {
|
|
|
2465
2469
|
var lockCount = 0;
|
|
2466
2470
|
var previousOverflow = null;
|
|
2467
2471
|
var acquireHardLock = () => {
|
|
2468
|
-
if (!
|
|
2472
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) return;
|
|
2469
2473
|
if (lockCount === 0) {
|
|
2470
2474
|
previousOverflow = document.body.style.overflow;
|
|
2471
2475
|
document.body.style.overflow = "hidden";
|
|
@@ -2473,7 +2477,7 @@ var acquireHardLock = () => {
|
|
|
2473
2477
|
lockCount += 1;
|
|
2474
2478
|
};
|
|
2475
2479
|
var releaseHardLock = () => {
|
|
2476
|
-
if (!
|
|
2480
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) return;
|
|
2477
2481
|
if (lockCount === 0) return;
|
|
2478
2482
|
lockCount -= 1;
|
|
2479
2483
|
if (lockCount === 0) {
|
|
@@ -2485,14 +2489,19 @@ var useConstrainedScrollLock = ({
|
|
|
2485
2489
|
enabled,
|
|
2486
2490
|
targetRect,
|
|
2487
2491
|
viewportHeight,
|
|
2488
|
-
padding = 0
|
|
2492
|
+
padding = 0,
|
|
2493
|
+
bottomInset = 0
|
|
2489
2494
|
}) => {
|
|
2490
2495
|
const isConstrainedModeRef = _react.useRef.call(void 0, false);
|
|
2491
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;
|
|
2492
2500
|
_react.useEffect.call(void 0, () => {
|
|
2493
|
-
if (!enabled || !
|
|
2494
|
-
const
|
|
2495
|
-
const
|
|
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;
|
|
2496
2505
|
if (!targetExceedsViewport) {
|
|
2497
2506
|
acquireHardLock();
|
|
2498
2507
|
isConstrainedModeRef.current = false;
|
|
@@ -2505,7 +2514,7 @@ var useConstrainedScrollLock = ({
|
|
|
2505
2514
|
const targetBottom = targetRect.bottom + padding;
|
|
2506
2515
|
const currentScroll = window.scrollY;
|
|
2507
2516
|
const minY = currentScroll + targetTop;
|
|
2508
|
-
const maxY = currentScroll + targetBottom -
|
|
2517
|
+
const maxY = currentScroll + targetBottom - effectiveViewportHeight2;
|
|
2509
2518
|
boundsRef.current = {
|
|
2510
2519
|
minY: Math.max(0, minY),
|
|
2511
2520
|
maxY: Math.max(0, maxY)
|
|
@@ -2525,7 +2534,8 @@ var useConstrainedScrollLock = ({
|
|
|
2525
2534
|
window.removeEventListener("scroll", handleScroll);
|
|
2526
2535
|
isConstrainedModeRef.current = false;
|
|
2527
2536
|
};
|
|
2528
|
-
}, [enabled, targetRect, viewportHeight, padding]);
|
|
2537
|
+
}, [enabled, targetRect, viewportHeight, padding, bottomInset]);
|
|
2538
|
+
return { isConstrainedMode };
|
|
2529
2539
|
};
|
|
2530
2540
|
|
|
2531
2541
|
// src/hooks/useHudTargetIssue.ts
|
|
@@ -2572,7 +2582,7 @@ var useHudTargetIssue = (target, options) => {
|
|
|
2572
2582
|
setArmed(false);
|
|
2573
2583
|
return;
|
|
2574
2584
|
}
|
|
2575
|
-
if (!
|
|
2585
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) {
|
|
2576
2586
|
setArmed(true);
|
|
2577
2587
|
return;
|
|
2578
2588
|
}
|
|
@@ -2595,7 +2605,8 @@ var useTourHud = (options = {}) => {
|
|
|
2595
2605
|
const {
|
|
2596
2606
|
overlayPadding,
|
|
2597
2607
|
overlayRadius,
|
|
2598
|
-
bodyScrollLock = DEFAULT_BODY_SCROLL_LOCK
|
|
2608
|
+
bodyScrollLock = DEFAULT_BODY_SCROLL_LOCK,
|
|
2609
|
+
scrollLockBottomInset
|
|
2599
2610
|
} = options;
|
|
2600
2611
|
const shortcuts = _nullishCoalesce(options.shortcuts, () => ( DEFAULT_SHORTCUTS));
|
|
2601
2612
|
const { backdropInteraction, lockBodyScroll } = useTour();
|
|
@@ -2612,11 +2623,12 @@ var useTourHud = (options = {}) => {
|
|
|
2612
2623
|
const shouldLockBodyScroll = Boolean(
|
|
2613
2624
|
bodyScrollLock && (_nullishCoalesce(_optionalChain([hudState, 'access', _101 => _101.flowHudOptions, 'optionalAccess', _102 => _102.behavior, 'optionalAccess', _103 => _103.lockBodyScroll]), () => ( lockBodyScroll))) && hudState.focusTrapActive
|
|
2614
2625
|
);
|
|
2615
|
-
useConstrainedScrollLock({
|
|
2626
|
+
const { isConstrainedMode: isConstrainedScrollActive } = useConstrainedScrollLock({
|
|
2616
2627
|
enabled: shouldLockBodyScroll,
|
|
2617
2628
|
targetRect: hudState.hudTarget.rect,
|
|
2618
2629
|
viewportHeight: viewport.height,
|
|
2619
|
-
padding: _nullishCoalesce(overlayPadding, () => ( 12))
|
|
2630
|
+
padding: _nullishCoalesce(overlayPadding, () => ( 12)),
|
|
2631
|
+
bottomInset: scrollLockBottomInset
|
|
2620
2632
|
});
|
|
2621
2633
|
const shortcutOptions = typeof shortcuts === "object" ? shortcuts : {};
|
|
2622
2634
|
const shortcutsEnabled = Boolean(
|
|
@@ -2674,7 +2686,8 @@ var useTourHud = (options = {}) => {
|
|
|
2674
2686
|
focusManager,
|
|
2675
2687
|
targetIssue,
|
|
2676
2688
|
shouldLockBodyScroll,
|
|
2677
|
-
shortcutsEnabled
|
|
2689
|
+
shortcutsEnabled,
|
|
2690
|
+
isConstrainedScrollActive
|
|
2678
2691
|
};
|
|
2679
2692
|
};
|
|
2680
2693
|
|
|
@@ -2695,7 +2708,7 @@ var useTourOverlay = (options) => {
|
|
|
2695
2708
|
const hasShownRef = _react.useRef.call(void 0, false);
|
|
2696
2709
|
const lastReadyTargetRef = _react.useRef.call(void 0, null);
|
|
2697
2710
|
_react.useEffect.call(void 0, () => {
|
|
2698
|
-
if (!
|
|
2711
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) return;
|
|
2699
2712
|
if (target.status === "ready") {
|
|
2700
2713
|
hasShownRef.current = true;
|
|
2701
2714
|
lastReadyTargetRef.current = {
|
|
@@ -2709,12 +2722,12 @@ var useTourOverlay = (options) => {
|
|
|
2709
2722
|
lastReadyTargetRef.current = null;
|
|
2710
2723
|
}
|
|
2711
2724
|
}, [target, isInGracePeriod]);
|
|
2712
|
-
const viewport =
|
|
2725
|
+
const viewport = _chunk7SAJNRGZcjs.getViewportRect.call(void 0, );
|
|
2713
2726
|
const cachedTarget = lastReadyTargetRef.current;
|
|
2714
2727
|
const highlightTarget = target.status === "ready" ? target : cachedTarget;
|
|
2715
2728
|
const resolvedRect = _nullishCoalesce(_optionalChain([highlightTarget, 'optionalAccess', _122 => _122.rect]), () => ( target.rect));
|
|
2716
2729
|
const resolvedIsScreen = _nullishCoalesce(_optionalChain([highlightTarget, 'optionalAccess', _123 => _123.isScreen]), () => ( target.isScreen));
|
|
2717
|
-
const expandedRect = resolvedIsScreen || !resolvedRect ? viewport :
|
|
2730
|
+
const expandedRect = resolvedIsScreen || !resolvedRect ? viewport : _chunk7SAJNRGZcjs.expandRect.call(void 0, resolvedRect, padding);
|
|
2718
2731
|
const safeBuffer = Math.max(0, edgeBuffer);
|
|
2719
2732
|
const insetTop = expandedRect.top <= 0 ? Math.min(safeBuffer, Math.max(0, expandedRect.height) / 2) : 0;
|
|
2720
2733
|
const insetLeft = expandedRect.left <= 0 ? Math.min(safeBuffer, Math.max(0, expandedRect.width) / 2) : 0;
|
|
@@ -2744,7 +2757,7 @@ var useTourOverlay = (options) => {
|
|
|
2744
2757
|
height: highlightHeight,
|
|
2745
2758
|
radius: highlightRadius
|
|
2746
2759
|
} : null;
|
|
2747
|
-
const maskCapable = _react.useMemo.call(void 0, () =>
|
|
2760
|
+
const maskCapable = _react.useMemo.call(void 0, () => _chunk7SAJNRGZcjs.supportsMasking.call(void 0, ), []);
|
|
2748
2761
|
const isActive = target.status === "ready" || target.status === "resolving" && cachedTarget !== null || isInGracePeriod;
|
|
2749
2762
|
const shouldMask = maskCapable && isActive;
|
|
2750
2763
|
const maskId = _react.useMemo.call(void 0,
|
|
@@ -3132,7 +3145,7 @@ var useDelayAdvance = () => {
|
|
|
3132
3145
|
if (!delayInfo) return;
|
|
3133
3146
|
if (!activeStep || activeStep.id !== delayInfo.stepId) return;
|
|
3134
3147
|
if (!state || state.status !== "running") return;
|
|
3135
|
-
if (!
|
|
3148
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) return;
|
|
3136
3149
|
let frameId = null;
|
|
3137
3150
|
const tick = () => {
|
|
3138
3151
|
setNow(getTimestamp());
|
|
@@ -3276,8 +3289,8 @@ var OverlayBackdrop = ({
|
|
|
3276
3289
|
showInteractionBlocker = true,
|
|
3277
3290
|
transitionsOverride
|
|
3278
3291
|
}) => {
|
|
3279
|
-
if (!
|
|
3280
|
-
const host =
|
|
3292
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) return null;
|
|
3293
|
+
const host = _chunk7SAJNRGZcjs.portalHost.call(void 0, );
|
|
3281
3294
|
if (!host) return null;
|
|
3282
3295
|
const adapter = useAnimationAdapter();
|
|
3283
3296
|
const {
|
|
@@ -3588,8 +3601,8 @@ var TourPopoverPortal = ({
|
|
|
3588
3601
|
transitionsOverride,
|
|
3589
3602
|
isInGracePeriod = false
|
|
3590
3603
|
}) => {
|
|
3591
|
-
if (!
|
|
3592
|
-
const host =
|
|
3604
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) return null;
|
|
3605
|
+
const host = _chunk7SAJNRGZcjs.portalHost.call(void 0, );
|
|
3593
3606
|
if (!host) return null;
|
|
3594
3607
|
const adapter = useAnimationAdapter();
|
|
3595
3608
|
const Container = _nullishCoalesce(containerComponent, () => ( adapter.components.MotionDiv));
|
|
@@ -3664,7 +3677,7 @@ var TourPopoverPortal = ({
|
|
|
3664
3677
|
});
|
|
3665
3678
|
const overflowRetryTimeoutRef = _react.useRef.call(void 0, null);
|
|
3666
3679
|
_react.useLayoutEffect.call(void 0, () => {
|
|
3667
|
-
if (!
|
|
3680
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) return;
|
|
3668
3681
|
const node = floatingRef.current;
|
|
3669
3682
|
if (!node) return;
|
|
3670
3683
|
const updateSize = () => {
|
|
@@ -3818,7 +3831,7 @@ var TourPopoverPortal = ({
|
|
|
3818
3831
|
};
|
|
3819
3832
|
}, []);
|
|
3820
3833
|
_react.useLayoutEffect.call(void 0, () => {
|
|
3821
|
-
if (!
|
|
3834
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) return;
|
|
3822
3835
|
const floatingEl = floatingRef.current;
|
|
3823
3836
|
const rectInfo = target.rect;
|
|
3824
3837
|
if (!floatingEl) return;
|
|
@@ -3873,7 +3886,7 @@ var TourPopoverPortal = ({
|
|
|
3873
3886
|
});
|
|
3874
3887
|
if (cancelState.cancelled) return;
|
|
3875
3888
|
const floatingBox = floatingEl.getBoundingClientRect();
|
|
3876
|
-
const viewportRect =
|
|
3889
|
+
const viewportRect = _chunk7SAJNRGZcjs.getViewportRect.call(void 0, );
|
|
3877
3890
|
const viewportTop = viewportRect.top;
|
|
3878
3891
|
const viewportBottom = viewportRect.top + viewportRect.height;
|
|
3879
3892
|
const viewportLeft = viewportRect.left;
|
|
@@ -3968,7 +3981,7 @@ var TourPopoverPortal = ({
|
|
|
3968
3981
|
});
|
|
3969
3982
|
}, [dragPosition, layoutMode]);
|
|
3970
3983
|
const clampToViewport = (rawLeft, rawTop) => {
|
|
3971
|
-
const rect =
|
|
3984
|
+
const rect = _chunk7SAJNRGZcjs.getViewportRect.call(void 0, );
|
|
3972
3985
|
const floatingEl = floatingRef.current;
|
|
3973
3986
|
const floatingElWidth = _nullishCoalesce(_optionalChain([floatingEl, 'optionalAccess', _161 => _161.offsetWidth]), () => ( 0));
|
|
3974
3987
|
const floatingElHeight = _nullishCoalesce(_optionalChain([floatingEl, 'optionalAccess', _162 => _162.offsetHeight]), () => ( 0));
|
|
@@ -4235,7 +4248,7 @@ var TourFocusManager = ({
|
|
|
4235
4248
|
}
|
|
4236
4249
|
};
|
|
4237
4250
|
_react.useLayoutEffect.call(void 0, () => {
|
|
4238
|
-
if (!
|
|
4251
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) return;
|
|
4239
4252
|
if (!active) {
|
|
4240
4253
|
restoreFocus();
|
|
4241
4254
|
return;
|
|
@@ -4251,7 +4264,7 @@ var TourFocusManager = ({
|
|
|
4251
4264
|
};
|
|
4252
4265
|
}, [active, popoverNode, target.element]);
|
|
4253
4266
|
_react.useEffect.call(void 0, () => {
|
|
4254
|
-
if (!
|
|
4267
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) return;
|
|
4255
4268
|
if (!active) return;
|
|
4256
4269
|
const doc = _nullishCoalesce(_nullishCoalesce(_optionalChain([popoverNode, 'optionalAccess', _167 => _167.ownerDocument]), () => ( _optionalChain([target, 'access', _168 => _168.element, 'optionalAccess', _169 => _169.ownerDocument]))), () => ( document));
|
|
4257
4270
|
const createGuard = (key) => {
|
|
@@ -4451,8 +4464,8 @@ var TourFocusManager = ({
|
|
|
4451
4464
|
setPopoverRect(null);
|
|
4452
4465
|
}
|
|
4453
4466
|
}, [popoverRingActive, popoverNode]);
|
|
4454
|
-
if (!
|
|
4455
|
-
const host =
|
|
4467
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) return null;
|
|
4468
|
+
const host = _chunk7SAJNRGZcjs.portalHost.call(void 0, );
|
|
4456
4469
|
if (!host) return null;
|
|
4457
4470
|
const boxShadow = _nullishCoalesce(_optionalChain([guardElementFocusRing, 'optionalAccess', _181 => _181.boxShadow]), () => ( DEFAULT_BOX_SHADOW));
|
|
4458
4471
|
const showTargetRing = targetRingActive && highlightRect;
|
|
@@ -4549,7 +4562,7 @@ var useHudMotion = () => {
|
|
|
4549
4562
|
var lockCount2 = 0;
|
|
4550
4563
|
var previousOverflow2 = null;
|
|
4551
4564
|
var acquireLock = () => {
|
|
4552
|
-
if (!
|
|
4565
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) return;
|
|
4553
4566
|
if (lockCount2 === 0) {
|
|
4554
4567
|
previousOverflow2 = document.body.style.overflow;
|
|
4555
4568
|
document.body.style.overflow = "hidden";
|
|
@@ -4557,7 +4570,7 @@ var acquireLock = () => {
|
|
|
4557
4570
|
lockCount2 += 1;
|
|
4558
4571
|
};
|
|
4559
4572
|
var releaseLock = () => {
|
|
4560
|
-
if (!
|
|
4573
|
+
if (!_chunk7SAJNRGZcjs.isBrowser) return;
|
|
4561
4574
|
if (lockCount2 === 0) return;
|
|
4562
4575
|
lockCount2 -= 1;
|
|
4563
4576
|
if (lockCount2 === 0) {
|
|
@@ -4615,4 +4628,4 @@ var useBodyScrollLock = (enabled) => {
|
|
|
4615
4628
|
|
|
4616
4629
|
|
|
4617
4630
|
|
|
4618
|
-
exports.AnimationAdapterProvider = AnimationAdapterProvider; exports.DialogRegistryProvider = DialogRegistryProvider; exports.OverlayBackdrop = OverlayBackdrop; exports.TourFocusManager = TourFocusManager; exports.TourPopoverPortal = TourPopoverPortal; exports.TourProvider = TourProvider; exports.createPathString =
|
|
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.mjs
CHANGED
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
portalHost,
|
|
16
16
|
subscribeToRouteChanges,
|
|
17
17
|
supportsMasking
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-J2JMZXGD.mjs";
|
|
19
19
|
|
|
20
20
|
// src/context.tsx
|
|
21
21
|
import {
|
|
@@ -716,8 +716,12 @@ var TourProvider = ({
|
|
|
716
716
|
[getActiveStore]
|
|
717
717
|
);
|
|
718
718
|
const advanceStep = useCallback2(
|
|
719
|
-
(stepId) =>
|
|
720
|
-
|
|
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 = useCallback2(() => {
|
|
723
727
|
setDebugEnabled((previous) => !previous);
|
|
@@ -2485,14 +2489,19 @@ var useConstrainedScrollLock = ({
|
|
|
2485
2489
|
enabled,
|
|
2486
2490
|
targetRect,
|
|
2487
2491
|
viewportHeight,
|
|
2488
|
-
padding = 0
|
|
2492
|
+
padding = 0,
|
|
2493
|
+
bottomInset = 0
|
|
2489
2494
|
}) => {
|
|
2490
2495
|
const isConstrainedModeRef = useRef8(false);
|
|
2491
2496
|
const boundsRef = useRef8({ 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;
|
|
2492
2500
|
useEffect11(() => {
|
|
2493
2501
|
if (!enabled || !isBrowser) return;
|
|
2494
|
-
const
|
|
2495
|
-
const
|
|
2502
|
+
const targetHeight2 = targetRect ? targetRect.height + padding * 2 : 0;
|
|
2503
|
+
const effectiveViewportHeight2 = viewportHeight - bottomInset;
|
|
2504
|
+
const targetExceedsViewport = targetRect && targetHeight2 > effectiveViewportHeight2;
|
|
2496
2505
|
if (!targetExceedsViewport) {
|
|
2497
2506
|
acquireHardLock();
|
|
2498
2507
|
isConstrainedModeRef.current = false;
|
|
@@ -2505,7 +2514,7 @@ var useConstrainedScrollLock = ({
|
|
|
2505
2514
|
const targetBottom = targetRect.bottom + padding;
|
|
2506
2515
|
const currentScroll = window.scrollY;
|
|
2507
2516
|
const minY = currentScroll + targetTop;
|
|
2508
|
-
const maxY = currentScroll + targetBottom -
|
|
2517
|
+
const maxY = currentScroll + targetBottom - effectiveViewportHeight2;
|
|
2509
2518
|
boundsRef.current = {
|
|
2510
2519
|
minY: Math.max(0, minY),
|
|
2511
2520
|
maxY: Math.max(0, maxY)
|
|
@@ -2525,7 +2534,8 @@ var useConstrainedScrollLock = ({
|
|
|
2525
2534
|
window.removeEventListener("scroll", handleScroll);
|
|
2526
2535
|
isConstrainedModeRef.current = false;
|
|
2527
2536
|
};
|
|
2528
|
-
}, [enabled, targetRect, viewportHeight, padding]);
|
|
2537
|
+
}, [enabled, targetRect, viewportHeight, padding, bottomInset]);
|
|
2538
|
+
return { isConstrainedMode };
|
|
2529
2539
|
};
|
|
2530
2540
|
|
|
2531
2541
|
// src/hooks/useHudTargetIssue.ts
|
|
@@ -2595,7 +2605,8 @@ var useTourHud = (options = {}) => {
|
|
|
2595
2605
|
const {
|
|
2596
2606
|
overlayPadding,
|
|
2597
2607
|
overlayRadius,
|
|
2598
|
-
bodyScrollLock = DEFAULT_BODY_SCROLL_LOCK
|
|
2608
|
+
bodyScrollLock = DEFAULT_BODY_SCROLL_LOCK,
|
|
2609
|
+
scrollLockBottomInset
|
|
2599
2610
|
} = options;
|
|
2600
2611
|
const shortcuts = options.shortcuts ?? DEFAULT_SHORTCUTS;
|
|
2601
2612
|
const { backdropInteraction, lockBodyScroll } = useTour();
|
|
@@ -2612,11 +2623,12 @@ var useTourHud = (options = {}) => {
|
|
|
2612
2623
|
const shouldLockBodyScroll = Boolean(
|
|
2613
2624
|
bodyScrollLock && (hudState.flowHudOptions?.behavior?.lockBodyScroll ?? lockBodyScroll) && hudState.focusTrapActive
|
|
2614
2625
|
);
|
|
2615
|
-
useConstrainedScrollLock({
|
|
2626
|
+
const { isConstrainedMode: isConstrainedScrollActive } = useConstrainedScrollLock({
|
|
2616
2627
|
enabled: shouldLockBodyScroll,
|
|
2617
2628
|
targetRect: hudState.hudTarget.rect,
|
|
2618
2629
|
viewportHeight: viewport.height,
|
|
2619
|
-
padding: overlayPadding ?? 12
|
|
2630
|
+
padding: overlayPadding ?? 12,
|
|
2631
|
+
bottomInset: scrollLockBottomInset
|
|
2620
2632
|
});
|
|
2621
2633
|
const shortcutOptions = typeof shortcuts === "object" ? shortcuts : {};
|
|
2622
2634
|
const shortcutsEnabled = Boolean(
|
|
@@ -2674,7 +2686,8 @@ var useTourHud = (options = {}) => {
|
|
|
2674
2686
|
focusManager,
|
|
2675
2687
|
targetIssue,
|
|
2676
2688
|
shouldLockBodyScroll,
|
|
2677
|
-
shortcutsEnabled
|
|
2689
|
+
shortcutsEnabled,
|
|
2690
|
+
isConstrainedScrollActive
|
|
2678
2691
|
};
|
|
2679
2692
|
};
|
|
2680
2693
|
|
package/dist/router/index.cjs
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunk7SAJNRGZcjs = require('../chunk-7SAJNRGZ.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
@@ -14,4 +14,4 @@ var _chunkD5LQLRSUcjs = require('../chunk-D5LQLRSU.cjs');
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
exports.createPathString =
|
|
17
|
+
exports.createPathString = _chunk7SAJNRGZcjs.createPathString; exports.getCurrentRoutePath = _chunk7SAJNRGZcjs.getCurrentRoutePath; exports.matchRoute = _chunk7SAJNRGZcjs.matchRoute; exports.notifyRouteChange = _chunk7SAJNRGZcjs.notifyRouteChange; exports.routeGatingChannel = _chunk7SAJNRGZcjs.routeGatingChannel; exports.subscribeToRouteChanges = _chunk7SAJNRGZcjs.subscribeToRouteChanges;
|
package/dist/router/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunk7SAJNRGZcjs = require('../chunk-7SAJNRGZ.cjs');
|
|
5
5
|
|
|
6
6
|
// src/router/nextAppRouterAdapter.tsx
|
|
7
7
|
var _navigation = require('next/navigation'); var NextNavigation = _interopRequireWildcard(_navigation);
|
|
@@ -22,12 +22,12 @@ var useNextAppRouterTourAdapter = () => {
|
|
|
22
22
|
const searchValue = _nullishCoalesce(_optionalChain([searchParams, 'optionalAccess', _ => _.toString, 'call', _2 => _2()]), () => ( ""));
|
|
23
23
|
_react.useEffect.call(void 0, () => {
|
|
24
24
|
if (typeof pathname !== "string") return;
|
|
25
|
-
const path =
|
|
25
|
+
const path = _chunk7SAJNRGZcjs.createPathString.call(void 0,
|
|
26
26
|
pathname,
|
|
27
27
|
searchValue.length > 0 ? `?${searchValue}` : "",
|
|
28
28
|
void 0
|
|
29
29
|
);
|
|
30
|
-
|
|
30
|
+
_chunk7SAJNRGZcjs.notifyRouteChange.call(void 0, path);
|
|
31
31
|
}, [pathname, searchValue]);
|
|
32
32
|
};
|
|
33
33
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunk7SAJNRGZcjs = require('../chunk-7SAJNRGZ.cjs');
|
|
5
5
|
|
|
6
6
|
// src/router/nextPagesRouterAdapter.tsx
|
|
7
7
|
var _router = require('next/router'); var NextRouter = _interopRequireWildcard(_router);
|
|
@@ -19,8 +19,8 @@ var useNextPagesRouterTourAdapter = () => {
|
|
|
19
19
|
const router = useRouter2();
|
|
20
20
|
const pathCandidate = typeof router.asPath === "string" && router.asPath.length > 0 ? router.asPath : router.pathname;
|
|
21
21
|
_react.useEffect.call(void 0, () => {
|
|
22
|
-
const path = typeof pathCandidate === "string" && pathCandidate.length > 0 ? pathCandidate :
|
|
23
|
-
|
|
22
|
+
const path = typeof pathCandidate === "string" && pathCandidate.length > 0 ? pathCandidate : _chunk7SAJNRGZcjs.createPathString.call(void 0, _nullishCoalesce(router.pathname, () => ( "/")));
|
|
23
|
+
_chunk7SAJNRGZcjs.notifyRouteChange.call(void 0, path);
|
|
24
24
|
}, [pathCandidate, router.pathname]);
|
|
25
25
|
};
|
|
26
26
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunk7SAJNRGZcjs = require('../chunk-7SAJNRGZ.cjs');
|
|
5
5
|
|
|
6
6
|
// src/router/reactRouterAdapter.tsx
|
|
7
7
|
var _react = require('react');
|
|
@@ -18,12 +18,12 @@ var useReactRouterTourAdapter = () => {
|
|
|
18
18
|
}
|
|
19
19
|
const location = useLocation2();
|
|
20
20
|
_react.useEffect.call(void 0, () => {
|
|
21
|
-
const path =
|
|
21
|
+
const path = _chunk7SAJNRGZcjs.createPathString.call(void 0,
|
|
22
22
|
location.pathname,
|
|
23
23
|
location.search,
|
|
24
24
|
location.hash
|
|
25
25
|
);
|
|
26
|
-
|
|
26
|
+
_chunk7SAJNRGZcjs.notifyRouteChange.call(void 0, path);
|
|
27
27
|
}, [location.pathname, location.search, location.hash]);
|
|
28
28
|
};
|
|
29
29
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunk7SAJNRGZcjs = require('../chunk-7SAJNRGZ.cjs');
|
|
5
5
|
|
|
6
6
|
// src/router/tanstackRouterAdapter.tsx
|
|
7
7
|
var _reactrouter = require('@tanstack/react-router'); var TanStackRouter = _interopRequireWildcard(_reactrouter);
|
|
@@ -55,8 +55,8 @@ var useTanStackRouterTourAdapter = () => {
|
|
|
55
55
|
const resolvedPathname = typeof location.pathname === "string" && location.pathname.length > 0 ? location.pathname : "/";
|
|
56
56
|
const resolvedSearch = "searchStr" in location && typeof location.searchStr === "string" ? location.searchStr : typeof location.search === "string" ? location.search : "";
|
|
57
57
|
const resolvedHash = typeof location.hash === "string" ? location.hash : "";
|
|
58
|
-
const path = typeof location.href === "string" && location.href.length > 0 ? location.href :
|
|
59
|
-
|
|
58
|
+
const path = typeof location.href === "string" && location.href.length > 0 ? location.href : _chunk7SAJNRGZcjs.createPathString.call(void 0, resolvedPathname, resolvedSearch, resolvedHash);
|
|
59
|
+
_chunk7SAJNRGZcjs.notifyRouteChange.call(void 0, path);
|
|
60
60
|
}, [location]);
|
|
61
61
|
};
|
|
62
62
|
|
package/dist/utils/dom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/utils/dom.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,SAC4C,CAAA;AAElE,KAAK,QAAQ,GAAG;IACd,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,+BAKxB,QAAQ,KAAG,cAOZ,CAAA;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,OAAO,GAAG,eAAe,KAAG,cAM3D,CAAA;AAEJ,eAAO,MAAM,eAAe,QAAO,cAgBlC,CAAA;AAED,eAAO,MAAM,UAAU,GACrB,MAAM,cAAc,EACpB,SAAS,MAAM,KACd,
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/utils/dom.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,SAC4C,CAAA;AAElE,KAAK,QAAQ,GAAG;IACd,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,+BAKxB,QAAQ,KAAG,cAOZ,CAAA;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,OAAO,GAAG,eAAe,KAAG,cAM3D,CAAA;AAEJ,eAAO,MAAM,eAAe,QAAO,cAgBlC,CAAA;AAED,eAAO,MAAM,UAAU,GACrB,MAAM,cAAc,EACpB,SAAS,MAAM,KACd,cAsBF,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,MAAM,cAAc,EAAE,eAAU,YAUhE,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,SAAS,OAAO,KAAG,cACF,CAAA;AAe/C,eAAO,MAAM,gBAAgB,GAAI,SAAS,OAAO,KAAG,KAAK,CAAC,OAAO,CA4BhE,CAAA;AAED,eAAO,MAAM,UAAU,0BAA2C,CAAA;AA4BlE,eAAO,MAAM,eAAe,eAM3B,CAAA"}
|