@robertlinde/react-tour-kit 1.0.2 → 1.0.3
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/CHANGELOG.md +10 -0
- package/README.md +2 -2
- package/dist/react-platform/dom/keep-reachable.util.d.ts +8 -0
- package/dist/react-platform/dom/keep-reachable.util.d.ts.map +1 -0
- package/dist/react-platform/dom/keep-reachable.util.js +35 -0
- package/dist/react-platform/dom/keep-reachable.util.js.map +1 -0
- package/dist/react-platform/dom/web-platform.d.ts.map +1 -1
- package/dist/react-platform/dom/web-platform.js +6 -3
- package/dist/react-platform/dom/web-platform.js.map +1 -1
- package/dist/react-platform/layer/web-renderer.d.ts.map +1 -1
- package/dist/react-platform/layer/web-renderer.js +22 -5
- package/dist/react-platform/layer/web-renderer.js.map +1 -1
- package/package.json +2 -1
- package/src/react-platform/dom/keep-reachable.util.ts +43 -0
- package/src/react-platform/dom/web-platform.ts +6 -3
- package/src/react-platform/layer/web-renderer.tsx +26 -6
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Releases are published automatically from `main`; each GitHub release lists its commits. This file describes the larger changes.
|
|
4
4
|
|
|
5
|
+
## 1.0.3
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
Tours started inside an app's own modal dialog (Radix and shadcn/ui, for example):
|
|
10
|
+
|
|
11
|
+
- Screen readers could not reach the tour: the dialog library hid it along with the rest of the page (`aria-hidden`). Libraries that make the rest of the page `inert` blocked it entirely.
|
|
12
|
+
- <kbd>Esc</kbd> closed the app's dialog underneath instead of the tour. While a tour is open, <kbd>Esc</kbd> now always closes the tour, also when a control in a custom tooltip has focus.
|
|
13
|
+
- A long tooltip did not scroll with the mouse wheel or touch.
|
|
14
|
+
|
|
5
15
|
## 1.0.2
|
|
6
16
|
|
|
7
17
|
### Fixed
|
package/README.md
CHANGED
|
@@ -143,7 +143,7 @@ function StartButton() {
|
|
|
143
143
|
}
|
|
144
144
|
```
|
|
145
145
|
|
|
146
|
-
While a tour is open, the page cannot be scrolled away from it with the wheel, touch or keyboard (a classic, always-visible scrollbar stays usable, as browsers do not let pages block it; the tour then keeps the target in view), and the tour is announced as a modal dialog. Keyboard: <kbd>→</kbd> next, <kbd>←</kbd> back (swapped in right-to-left pages), <kbd>Esc</kbd> closes. Presses, focus and keys inside the tour do not reach your page's own listeners, so a menu that closes on "click outside" stays open while a step points at it. Opening the tour (a modal dialog) does close elements shown with `popover="auto"`: for a popover a step points at, use `popover="manual"`.
|
|
146
|
+
While a tour is open, the page cannot be scrolled away from it with the wheel, touch or keyboard (a classic, always-visible scrollbar stays usable, as browsers do not let pages block it; the tour then keeps the target in view), and the tour is announced as a modal dialog. Keyboard: <kbd>→</kbd> next, <kbd>←</kbd> back (swapped in right-to-left pages), <kbd>Esc</kbd> closes. Presses, focus and keys inside the tour do not reach your page's own listeners, so a menu that closes on "click outside" stays open while a step points at it. Tours also work inside your app's own modal dialogs (Radix and shadcn/ui, for example): the dialog stays open, <kbd>Esc</kbd> closes the tour first, and screen readers can reach the tour. Opening the tour (a modal dialog) does close elements shown with `popover="auto"`: for a popover a step points at, use `popover="manual"`.
|
|
147
147
|
|
|
148
148
|
### Next.js
|
|
149
149
|
|
|
@@ -575,7 +575,7 @@ The tour is rendered as a modal `<dialog>` in the browser's top layer, so it is
|
|
|
575
575
|
- **Keeps everything in sight.** Before a step is shown, its target is scrolled into view — through every scroll container around it, including horizontal ones — with room for the tooltip. Elements that stay put while the page scrolls (sticky headers, cookie banners, floating buttons; any number, any shape) are detected and the target is scrolled clear of them, in both directions. Targets larger than the screen are aligned to their start. The tooltip is placed inside the visible screen minus safe areas and the on-screen keyboard, flips to another side when there is no room, and scrolls its own content if it is taller than the screen. When the window is resized or rotated, or your app or an animation moves the target, the tour follows.
|
|
576
576
|
- **Waits instead of guessing.** Targets that are not rendered yet (lazy pages, animations, data loading) are awaited, event-driven, for up to 5 seconds.
|
|
577
577
|
- **Animates.** The tour fades in, the highlight glides from target to target together with the scroll, and the tooltip enters from the side it is on. On React Native every animation runs on the UI thread, so it stays smooth while JavaScript is busy. With reduced motion turned on in the system, movement is replaced by short fades.
|
|
578
|
-
- **Is accessible.** On the web the tour is a modal dialog (`aria-modal`, labelled by the step title, described by its content): focus moves into the tooltip and back to where it was when the tour ends, the rest of the page is inert, arrow keys
|
|
578
|
+
- **Is accessible.** On the web the tour is a modal dialog (`aria-modal`, labelled by the step title, described by its content): focus moves into the tooltip and back to where it was when the tour ends, the rest of the page is inert, arrow keys work (but leave text fields, sliders, radio groups and other controls in a custom tooltip alone), <kbd>Esc</kbd> closes the tour, a long tooltip scrolls with the keyboard, and step changes are announced. Buttons have accessible names and large enough touch targets. In Windows high-contrast mode the highlight is drawn as an outline. On React Native, screen-reader focus moves to the tooltip, the app behind it is hidden from screen readers (in a `TourHost`, see [Modal screens](#modal-screens)), and the back button closes the tour.
|
|
579
579
|
- **Costs nothing while idle.** Right after a step appears, the tour checks its target every frame until it has stayed put for a second (three at most), because animations can move it without any event (a React Native screen sliding in, for example). After that, while nothing moves, the tour does no work at all: no timers, no measuring, no re-rendering. Scrolling and resizing are followed once per frame, without re-rendering your app. `useTour()` only re-renders components when the tour's state changes.
|
|
580
580
|
- **Is safe.** Callbacks run exactly once, also in Strict Mode, with double clicks and when tours replace each other. Errors in your callbacks are reported and never leave the tour stuck.
|
|
581
581
|
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keeps `element` and its ancestors below `<body>` free of `aria-hidden` and `inert`, until the
|
|
3
|
+
* returned cleanup runs. Modal libraries put these on everything outside their own dialog (Radix
|
|
4
|
+
* sets `aria-hidden`, others `inert`), also on the tour, which would hide it from screen readers or
|
|
5
|
+
* block it; while it is open, the tour is the topmost modal.
|
|
6
|
+
*/
|
|
7
|
+
export declare function keepReachable(element: Element): () => void;
|
|
8
|
+
//# sourceMappingURL=keep-reachable.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keep-reachable.util.d.ts","sourceRoot":"","sources":["../../../src/react-platform/dom/keep-reachable.util.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,IAAI,CAkC1D"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
const blockingAttributes = ['aria-hidden', 'inert'];
|
|
2
|
+
/**
|
|
3
|
+
* Keeps `element` and its ancestors below `<body>` free of `aria-hidden` and `inert`, until the
|
|
4
|
+
* returned cleanup runs. Modal libraries put these on everything outside their own dialog (Radix
|
|
5
|
+
* sets `aria-hidden`, others `inert`), also on the tour, which would hide it from screen readers or
|
|
6
|
+
* block it; while it is open, the tour is the topmost modal.
|
|
7
|
+
*/
|
|
8
|
+
export function keepReachable(element) {
|
|
9
|
+
const elements = [];
|
|
10
|
+
for (let current = element; current && current !== document.body && current !== document.documentElement; current = current.parentElement) {
|
|
11
|
+
elements.push(current);
|
|
12
|
+
}
|
|
13
|
+
const clear = (target) => {
|
|
14
|
+
for (const name of blockingAttributes) {
|
|
15
|
+
target.removeAttribute(name);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
for (const target of elements) {
|
|
19
|
+
clear(target);
|
|
20
|
+
}
|
|
21
|
+
const observer = new MutationObserver((records) => {
|
|
22
|
+
for (const record of records) {
|
|
23
|
+
if (record.target instanceof Element) {
|
|
24
|
+
clear(record.target);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
for (const target of elements) {
|
|
29
|
+
observer.observe(target, { attributes: true, attributeFilter: blockingAttributes });
|
|
30
|
+
}
|
|
31
|
+
return () => {
|
|
32
|
+
observer.disconnect();
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=keep-reachable.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keep-reachable.util.js","sourceRoot":"","sources":["../../../src/react-platform/dom/keep-reachable.util.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KACE,IAAI,OAAO,GAAmB,OAAO,EACrC,OAAO,IAAI,OAAO,KAAK,QAAQ,CAAC,IAAI,IAAI,OAAO,KAAK,QAAQ,CAAC,eAAe,EAC5E,OAAO,GAAG,OAAO,CAAC,aAAa,EAC/B,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,MAAe,EAAQ,EAAE;QACtC,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;YACtC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,OAAO,EAAE,EAAE;QAChD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,YAAY,OAAO,EAAE,CAAC;gBACrC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAC,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,EAAC,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,GAAG,EAAE;QACV,QAAQ,CAAC,UAAU,EAAE,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-platform.d.ts","sourceRoot":"","sources":["../../../src/react-platform/dom/web-platform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,eAAe,EAAkB,MAAM,wCAAwC,CAAC;AAQ5G,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM;QAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAC,CAAC;CAC3F,CAAC;
|
|
1
|
+
{"version":3,"file":"web-platform.d.ts","sourceRoot":"","sources":["../../../src/react-platform/dom/web-platform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,eAAe,EAAkB,MAAM,wCAAwC,CAAC;AAQ5G,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM;QAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAC,CAAC;CAC3F,CAAC;AA0DF,gHAAgH;AAChH,wBAAgB,iBAAiB,IAAI,WAAW,CAuI/C"}
|
|
@@ -6,8 +6,8 @@ import { readViewport } from './viewport.util.js';
|
|
|
6
6
|
/**
|
|
7
7
|
* Events that must not reach the app's listeners on `<body>`, `document` or `window`: "click
|
|
8
8
|
* outside" handlers of menus and popovers (which would close the menu a step highlights), focus
|
|
9
|
-
* traps of the app's own dialogs
|
|
10
|
-
* open, so nothing in it expects them.
|
|
9
|
+
* traps and scroll locks of the app's own dialogs (which would stop a long tooltip from scrolling),
|
|
10
|
+
* and keyboard shortcuts. The page is inert while the tour is open, so nothing in it expects them.
|
|
11
11
|
*/
|
|
12
12
|
const isolatedEvents = [
|
|
13
13
|
'pointerdown',
|
|
@@ -15,7 +15,9 @@ const isolatedEvents = [
|
|
|
15
15
|
'mousedown',
|
|
16
16
|
'mouseup',
|
|
17
17
|
'touchstart',
|
|
18
|
+
'touchmove',
|
|
18
19
|
'touchend',
|
|
20
|
+
'wheel',
|
|
19
21
|
'click',
|
|
20
22
|
'dblclick',
|
|
21
23
|
'auxclick',
|
|
@@ -146,7 +148,8 @@ export function createWebPlatform() {
|
|
|
146
148
|
event.stopPropagation();
|
|
147
149
|
};
|
|
148
150
|
for (const type of isolatedEvents) {
|
|
149
|
-
|
|
151
|
+
// Passive: it never cancels anything, so scrolling does not wait for it.
|
|
152
|
+
element.addEventListener(type, stop, { passive: true });
|
|
150
153
|
}
|
|
151
154
|
document.body.append(element);
|
|
152
155
|
host = element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-platform.js","sourceRoot":"","sources":["../../../src/react-platform/dom/web-platform.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"web-platform.js","sourceRoot":"","sources":["../../../src/react-platform/dom/web-platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-renderer.d.ts","sourceRoot":"","sources":["../../../src/react-platform/layer/web-renderer.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAgBV,YAAY,EACb,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"web-renderer.d.ts","sourceRoot":"","sources":["../../../src/react-platform/layer/web-renderer.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAgBV,YAAY,EACb,MAAM,wCAAwC,CAAC;AAskBhD,kCAAkC;AAClC,eAAO,MAAM,WAAW,EAAE,YAA6E,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { clamp } from '../../shared/geometry/box.util.js';
|
|
|
4
4
|
import { useIsomorphicLayoutEffect } from '../../shared/react/use-isomorphic-layout-effect.hook.js';
|
|
5
5
|
import { motion } from '../../shared/renderer/motion.js';
|
|
6
6
|
import { handlesKey, pageDirection } from '../dom/elements.util.js';
|
|
7
|
+
import { keepReachable } from '../dom/keep-reachable.util.js';
|
|
7
8
|
import { lockScroll } from '../dom/scroll-lock.util.js';
|
|
8
9
|
import { injectTourStyles } from './styles.js';
|
|
9
10
|
const [x1, y1, x2, y2] = motion.easing;
|
|
@@ -95,13 +96,34 @@ function Layer({ children, state, isVisible, fadeMs, isInteractive, theme, title
|
|
|
95
96
|
const trigger = document.activeElement;
|
|
96
97
|
openModal(dialog);
|
|
97
98
|
const unlock = lockScroll(dialog);
|
|
99
|
+
const stopKeepingReachable = keepReachable(dialog);
|
|
98
100
|
return () => {
|
|
101
|
+
stopKeepingReachable();
|
|
99
102
|
unlock();
|
|
100
103
|
reopening.current = true;
|
|
101
104
|
closeModal(dialog);
|
|
102
105
|
restoreFocus(trigger, dialog);
|
|
103
106
|
};
|
|
104
107
|
}, []);
|
|
108
|
+
// Escape belongs to the topmost modal, the tour. Modal libraries underneath listen for it on the
|
|
109
|
+
// document before it reaches the tour (Radix, in the capture phase): take it on the window first.
|
|
110
|
+
useEffect(() => {
|
|
111
|
+
if (!isInteractive) {
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
const onEscape = (event) => {
|
|
115
|
+
if (event.key !== 'Escape' || event.isComposing || event.altKey || event.ctrlKey || event.metaKey) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
event.stopPropagation();
|
|
119
|
+
event.preventDefault();
|
|
120
|
+
onIntent('escape');
|
|
121
|
+
};
|
|
122
|
+
globalThis.addEventListener('keydown', onEscape, { capture: true });
|
|
123
|
+
return () => {
|
|
124
|
+
globalThis.removeEventListener('keydown', onEscape, { capture: true });
|
|
125
|
+
};
|
|
126
|
+
}, [isInteractive, onIntent]);
|
|
105
127
|
// If the app opened its own modal (in onBeforeStep), move the tour back on top of it.
|
|
106
128
|
useEffect(() => {
|
|
107
129
|
const dialog = layerRef.current;
|
|
@@ -159,11 +181,6 @@ function Layer({ children, state, isVisible, fadeMs, isInteractive, theme, title
|
|
|
159
181
|
event.metaKey) {
|
|
160
182
|
return;
|
|
161
183
|
}
|
|
162
|
-
if (key === 'Escape') {
|
|
163
|
-
event.preventDefault();
|
|
164
|
-
onIntent('escape');
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
184
|
if ((key === 'ArrowRight' || key === 'ArrowLeft') && !handlesKey(event.target, key)) {
|
|
168
185
|
event.preventDefault();
|
|
169
186
|
// In right-to-left pages, the arrow pointing to the start goes forward.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-renderer.js","sourceRoot":"","sources":["../../../src/react-platform/layer/web-renderer.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"web-renderer.js","sourceRoot":"","sources":["../../../src/react-platform/layer/web-renderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAIL,SAAS,EACT,kBAAkB,EAClB,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAC,KAAK,EAAC,MAAM,mCAAmC,CAAC;AAExD,OAAO,EAAC,yBAAyB,EAAC,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAC,MAAM,EAAC,MAAM,iCAAiC,CAAC;AAmBvD,OAAO,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAK7C,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;AACvC,MAAM,cAAc,GAAG,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC;AAElE,gGAAgG;AAChG,2CAA2C;AAC3C,gGAAgG;AAEhG,0EAA0E;AAC1E,MAAM,aAAa,GAAG,IAAI,OAAO,EAAgC,CAAC;AAElE;;;;GAIG;AACH,SAAS,SAAS,CAAC,MAAyB;IAC1C,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/C,OAAO;IACT,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC/C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAC/F,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,UAAU,CAAC,MAAyB;IAC3C,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACtD,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,WAAW,CAAC,OAAgB,EAAE,QAAgB;IACrD,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,8CAA8C;AAC9C,SAAS,YAAY,CAAC,MAAyB;IAC7C,OAAO,MAAM,CAAC,aAAa,CAAc,uCAAuC,CAAC,CAAC;AACpF,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,OAAuB,EAAE,MAAyB;IACtE,IAAI,CAAC,CAAC,OAAO,YAAY,WAAW,CAAC,IAAI,OAAO,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3F,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC;IACtC,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,OAAO,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,KAAK,CAAC,EACb,QAAQ,EACR,KAAK,EACL,SAAS,EACT,MAAM,EACN,aAAa,EACb,KAAK,EACL,OAAO,EACP,aAAa,EACb,aAAa,EACb,YAAY,EACZ,OAAO,EACP,QAAQ,GACG;IACX,MAAM,QAAQ,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE5C,kBAAkB,CAAC,GAAG,EAAE;QACtB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,yBAAyB,CAAC,GAAG,EAAE;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;QACvC,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACnD,OAAO,GAAS,EAAE;YAChB,oBAAoB,EAAE,CAAC;YACvB,MAAM,EAAE,CAAC;YACT,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;YACzB,UAAU,CAAC,MAAM,CAAC,CAAC;YACnB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,iGAAiG;IACjG,kGAAkG;IAClG,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAQ,EAAE;YAC9C,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClG,OAAO;YACT,CAAC;YAED,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,UAAU,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QAClE,OAAO,GAAS,EAAE;YAChB,UAAU,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QACvE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE9B,sFAAsF;IACtF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CACzD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAClF,CAAC;QACF,IAAI,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;YACvC,gEAAgE;YAChE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;YACzB,UAAU,CAAC,MAAM,CAAC,CAAC;YACnB,SAAS,CAAC,MAAM,CAAC,CAAC;YAClB,yEAAyE;YACzE,MAAM,OAAO,GAAG,OAAO,YAAY,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC5G,OAAO,EAAE,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,gGAAgG;IAChG,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,+FAA+F;QAC/F,yDAAyD;QACzD,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC;QAC7C,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAE5B,MAAM,KAAK,GAAuB;QAChC,eAAe,EAAE,KAAK,CAAC,YAAY;QACnC,kBAAkB,EAAE,KAAK,CAAC,gBAAgB;QAC1C,UAAU,EAAE,KAAK,CAAC,iBAAiB;QACnC,aAAa,EAAE,KAAK,CAAC,UAAU;QAC/B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,eAAe,EAAE,KAAK,CAAC,YAAY;QACnC,qBAAqB,EAAE,GAAG,MAAM,IAAI;KACrC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,KAA4C,EAAQ,EAAE;QACvE,MAAM,EAAC,WAAW,EAAE,GAAG,EAAC,GAAG,KAAK,CAAC;QACjC,IACE,CAAC,aAAa;YACd,KAAK,CAAC,gBAAgB;YACtB,WAAW,CAAC,WAAW;YACvB,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,OAAO,EACb,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YACpF,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,wEAAwE;YACxE,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,YAAY,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC;YACnE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,kBACE,GAAG,EAAE,QAAQ,EACb,SAAS,EAAC,UAAU,mBACN,EAAE,gBACJ,KAAK,kBACH,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACxC,GAAG,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,qBAC3B,OAAO,sBACN,aAAa,EAC/B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAQ,EAAE;YACxB,sFAAsF;YACtF,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,EACD,OAAO,EAAE,GAAS,EAAE;YAClB,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,8EAA8E;YAC9E,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,aAEA,QAAQ,EACT,cAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,aAAa,eAAW,QAAQ,iBAAa,MAAM,GAAG,IAC5E,CACV,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,EAAC,aAAa,EAAE,OAAO,EAAgB;IACvD,OAAO,CACL,cACE,SAAS,EAAC,cAAc,uBACN,EAAE,mBACL,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAC7C,OAAO,EAAE,CAAC,KAAK,EAAQ,EAAE;YACvB,OAAO,CAAC,EAAC,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAC,CAAC,CAAC;QAChD,CAAC,GACD,CACH,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AAEhF,iEAAiE;AACjE,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAS;IAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,WAAW,IAAI,UAAU,CAAC,UAAU,CAAC;IAC5E,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,YAAY,IAAI,UAAU,CAAC,WAAW,CAAC;IAC/E,OAAO;QACL,GAAG,IAAI;QACP,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAAC;QACxE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,SAAS,SAAS,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAiB;IAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,MAAM,KAAK,GAAkB,IAAI;QAC/B,CAAC,CAAC;YACE,IAAI,EAAE,IAAI,CAAC,CAAC;YACZ,GAAG,EAAE,IAAI,CAAC,CAAC;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,oCAAoC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK;SAC5F;QACH,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAC,CAAC;IACpE,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC;QAC1E,KAAK,CAAC,UAAU,GAAG,mBAAmB;aACnC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,IAAI,UAAU,CAAC,UAAU,MAAM,MAAM,EAAE,CAAC;aACrE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,OAAO,CACL,6BACc,MAAM,EAClB,SAAS,EAAC,eAAe,wBACN,EAAE,oBACL,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EACrC,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB;IAC7C,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,KAAkB;IACxC,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,WAAW,CAAC,CAAC;IACrF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;IAClG,CAAC;IAED,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACxC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACrC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,IAAI,MAAM,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;AACnG,CAAC;AAED,gIAAgI;AAChI,SAAS,YAAY,CAAC,EAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAoB;IAC7F,MAAM,GAAG,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1D,gGAAgG;IAChG,qFAAqF;IACrF,gGAAgG;IAChG,kEAAkE;IAClE,yBAAyB,CAAC,GAAG,EAAE;QAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,GAAmC,EAAQ,EAAE;YAC3D,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;YACxF,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;YAC1F,MAAM,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;YACzC,mDAAmD;YACnD,MAAM,CAAC,SAAS,CAAC,CAAC;YAClB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9C,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;YAC9D,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,GAAS,EAAE;YAChB,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,0FAA0F;IAC1F,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;IAC5C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAuB;QAChC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,IAAI;QACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,kBAAkB,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI;QAC3C,eAAe,EAAE,GAAG,QAAQ,CAAC,EAAE,IAAI;QACnC,eAAe,EAAE,GAAG,QAAQ,CAAC,EAAE,IAAI;QACnC,mBAAmB,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3C,sBAAsB,EAAE,GAAG,QAAQ,CAAC,UAAU,IAAI;QAClD,mBAAmB,EAAE,GAAG,QAAQ,CAAC,OAAO,IAAI;KAC7C,CAAC;IAEF,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,aAAa,sBACN,EAAE,oBACH,MAAM,CAAC,SAAS,mBACjB,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,iBAC7B,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,sBACpB,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,eACrC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACtC,QAAQ,EAAE,CAAC,CAAC,EACZ,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,CAAC,KAAK,EAAQ,EAAE;YAC9B,yDAAyD;YACzD,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa,EAAE,CAAC;gBACzC,aAAa,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,YAEA,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAoB;IAC9E,MAAM,GAAG,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAChD,yBAAyB,CAAC,GAAG,EAAE;QAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAC7C,MAAM,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,KAAK,GAAuB,EAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,SAAS,IAAI,EAAC,CAAC;IAC9F,OAAO,CACL,cAAK,GAAG,EAAE,GAAG,iBAAc,MAAM,EAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,KAAK,YACnE,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED,gGAAgG;AAChG,aAAa;AACb,gGAAgG;AAEhG,SAAS,SAAS;IAChB,OAAO,CACL,6BAAiB,MAAM,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,OAAO,YAC9F,eAAM,CAAC,EAAC,oBAAoB,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,MAAM,EAAC,aAAa,EAAC,OAAO,GAAG,GAC1F,CACP,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAY;IAC5C,OAAO,CACL,cAAK,SAAS,EAAC,UAAU,oBAAiB,SAAS,YAChD,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,EAAC,IAAI,EAAE,MAAM,EAAa;IACvC,MAAM,KAAK,GAAuB,EAAC,oBAAoB,EAAE,GAAG,MAAM,IAAI,EAAC,CAAC;IACxE,OAAO,6BAAiB,MAAM,EAAC,SAAS,EAAC,WAAW,eAAY,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,CAAC;AACzF,CAAC;AAED,SAAS,MAAM,CAAC,EAAC,QAAQ,EAAiB;IACxC,OAAO,cAAK,SAAS,EAAC,YAAY,YAAE,QAAQ,GAAO,CAAC;AACtD,CAAC;AAED,SAAS,OAAO,CAAC,EAAC,IAAI,EAAe;IACnC,OAAO,eAAM,SAAS,EAAC,aAAa,YAAE,IAAI,GAAQ,CAAC;AACrD,CAAC;AAED,SAAS,WAAW,CAAC,EAAC,KAAK,EAAE,OAAO,EAAmB;IACrD,OAAO,CACL,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,WAAW,gBAAa,KAAK,EAAE,OAAO,EAAE,OAAO,YAC7E,KAAC,SAAS,KAAG,GACN,CACV,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,EAAC,QAAQ,EAAiB;IACtC,OAAO,cAAK,SAAS,EAAC,UAAU,YAAE,QAAQ,GAAO,CAAC;AACpD,CAAC;AAED,2GAA2G;AAC3G,SAAS,KAAK,CAAC,EAAC,EAAE,EAAE,QAAQ,EAAgB;IAC1C,OAAO,CACL,cAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAC,SAAS,gBAAa,CAAC,EAAE,SAAS,EAAC,WAAW,YAC7D,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,EAAC,EAAE,EAAE,QAAQ,EAAgB;IAC5C,OAAO,CACL,cAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,aAAa,YACjC,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,EAAC,QAAQ,EAAiB;IACxC,OAAO,cAAK,SAAS,EAAC,YAAY,YAAE,QAAQ,GAAO,CAAC;AACtD,CAAC;AAED,SAAS,MAAM,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAc;IAC7D,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,6BAA6B,EAC1F,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,OAAO,YAEf,KAAK,GACC,CACV,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAY;IACxC,OAAO,CACL,cAAK,SAAS,EAAC,UAAU,EAAC,IAAI,EAAC,OAAO,gBAAa,KAAK,YACrD,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED,SAAS,GAAG,CAAC,EAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAW;IAChD,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,SAAS,gBACP,KAAK,kBACH,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC5C,OAAO,EAAE,OAAO,GAChB,CACH,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,8BAAkB,MAAM,EAAC,SAAS,EAAC,cAAc,GAAG,CAAC;AAC9D,CAAC;AAED,MAAM,IAAI,GAAc;IACtB,IAAI;IACJ,KAAK;IACL,MAAM;IACN,OAAO;IACP,WAAW;IACX,IAAI;IACJ,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,IAAI;IACJ,GAAG;IACH,QAAQ;CACT,CAAC;AAEF,kCAAkC;AAClC,MAAM,CAAC,MAAM,WAAW,GAAiB,EAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robertlinde/react-tour-kit",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Guided product tours for React and React Native. Smooth, accessible, and guaranteed to stay on screen: the target is scrolled into view and the tooltip never renders out of sight.",
|
|
6
6
|
"author": "Robert Linde",
|
|
@@ -88,6 +88,7 @@
|
|
|
88
88
|
"@commitlint/config-conventional": "21.2.3",
|
|
89
89
|
"@estruyf/github-actions-reporter": "1.13.0",
|
|
90
90
|
"@playwright/test": "1.64.0",
|
|
91
|
+
"@radix-ui/react-dialog": "1.1.23",
|
|
91
92
|
"@types/node": "26.6.5",
|
|
92
93
|
"@types/react": "19.3.0",
|
|
93
94
|
"@types/react-dom": "19.3.0",
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
const blockingAttributes = ['aria-hidden', 'inert'];
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Keeps `element` and its ancestors below `<body>` free of `aria-hidden` and `inert`, until the
|
|
5
|
+
* returned cleanup runs. Modal libraries put these on everything outside their own dialog (Radix
|
|
6
|
+
* sets `aria-hidden`, others `inert`), also on the tour, which would hide it from screen readers or
|
|
7
|
+
* block it; while it is open, the tour is the topmost modal.
|
|
8
|
+
*/
|
|
9
|
+
export function keepReachable(element: Element): () => void {
|
|
10
|
+
const elements: Element[] = [];
|
|
11
|
+
for (
|
|
12
|
+
let current: Element | null = element;
|
|
13
|
+
current && current !== document.body && current !== document.documentElement;
|
|
14
|
+
current = current.parentElement
|
|
15
|
+
) {
|
|
16
|
+
elements.push(current);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const clear = (target: Element): void => {
|
|
20
|
+
for (const name of blockingAttributes) {
|
|
21
|
+
target.removeAttribute(name);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
for (const target of elements) {
|
|
26
|
+
clear(target);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const observer = new MutationObserver((records) => {
|
|
30
|
+
for (const record of records) {
|
|
31
|
+
if (record.target instanceof Element) {
|
|
32
|
+
clear(record.target);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
for (const target of elements) {
|
|
37
|
+
observer.observe(target, {attributes: true, attributeFilter: blockingAttributes});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return () => {
|
|
41
|
+
observer.disconnect();
|
|
42
|
+
};
|
|
43
|
+
}
|
|
@@ -19,8 +19,8 @@ export type WebPlatform = PlatformAdapter & {
|
|
|
19
19
|
/**
|
|
20
20
|
* Events that must not reach the app's listeners on `<body>`, `document` or `window`: "click
|
|
21
21
|
* outside" handlers of menus and popovers (which would close the menu a step highlights), focus
|
|
22
|
-
* traps of the app's own dialogs
|
|
23
|
-
* open, so nothing in it expects them.
|
|
22
|
+
* traps and scroll locks of the app's own dialogs (which would stop a long tooltip from scrolling),
|
|
23
|
+
* and keyboard shortcuts. The page is inert while the tour is open, so nothing in it expects them.
|
|
24
24
|
*/
|
|
25
25
|
const isolatedEvents = [
|
|
26
26
|
'pointerdown',
|
|
@@ -28,7 +28,9 @@ const isolatedEvents = [
|
|
|
28
28
|
'mousedown',
|
|
29
29
|
'mouseup',
|
|
30
30
|
'touchstart',
|
|
31
|
+
'touchmove',
|
|
31
32
|
'touchend',
|
|
33
|
+
'wheel',
|
|
32
34
|
'click',
|
|
33
35
|
'dblclick',
|
|
34
36
|
'auxclick',
|
|
@@ -183,7 +185,8 @@ export function createWebPlatform(): WebPlatform {
|
|
|
183
185
|
};
|
|
184
186
|
|
|
185
187
|
for (const type of isolatedEvents) {
|
|
186
|
-
|
|
188
|
+
// Passive: it never cancels anything, so scrolling does not wait for it.
|
|
189
|
+
element.addEventListener(type, stop, {passive: true});
|
|
187
190
|
}
|
|
188
191
|
|
|
189
192
|
document.body.append(element);
|
|
@@ -30,6 +30,7 @@ import type {
|
|
|
30
30
|
TourRenderer,
|
|
31
31
|
} from '../../shared/renderer/renderer.type.js';
|
|
32
32
|
import {handlesKey, pageDirection} from '../dom/elements.util.js';
|
|
33
|
+
import {keepReachable} from '../dom/keep-reachable.util.js';
|
|
33
34
|
import {lockScroll} from '../dom/scroll-lock.util.js';
|
|
34
35
|
import {injectTourStyles} from './styles.js';
|
|
35
36
|
|
|
@@ -154,7 +155,9 @@ function Layer({
|
|
|
154
155
|
const trigger = document.activeElement;
|
|
155
156
|
openModal(dialog);
|
|
156
157
|
const unlock = lockScroll(dialog);
|
|
158
|
+
const stopKeepingReachable = keepReachable(dialog);
|
|
157
159
|
return (): void => {
|
|
160
|
+
stopKeepingReachable();
|
|
158
161
|
unlock();
|
|
159
162
|
reopening.current = true;
|
|
160
163
|
closeModal(dialog);
|
|
@@ -162,6 +165,29 @@ function Layer({
|
|
|
162
165
|
};
|
|
163
166
|
}, []);
|
|
164
167
|
|
|
168
|
+
// Escape belongs to the topmost modal, the tour. Modal libraries underneath listen for it on the
|
|
169
|
+
// document before it reaches the tour (Radix, in the capture phase): take it on the window first.
|
|
170
|
+
useEffect(() => {
|
|
171
|
+
if (!isInteractive) {
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const onEscape = (event: KeyboardEvent): void => {
|
|
176
|
+
if (event.key !== 'Escape' || event.isComposing || event.altKey || event.ctrlKey || event.metaKey) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
event.stopPropagation();
|
|
181
|
+
event.preventDefault();
|
|
182
|
+
onIntent('escape');
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
globalThis.addEventListener('keydown', onEscape, {capture: true});
|
|
186
|
+
return (): void => {
|
|
187
|
+
globalThis.removeEventListener('keydown', onEscape, {capture: true});
|
|
188
|
+
};
|
|
189
|
+
}, [isInteractive, onIntent]);
|
|
190
|
+
|
|
165
191
|
// If the app opened its own modal (in onBeforeStep), move the tour back on top of it.
|
|
166
192
|
useEffect(() => {
|
|
167
193
|
const dialog = layerRef.current;
|
|
@@ -229,12 +255,6 @@ function Layer({
|
|
|
229
255
|
return;
|
|
230
256
|
}
|
|
231
257
|
|
|
232
|
-
if (key === 'Escape') {
|
|
233
|
-
event.preventDefault();
|
|
234
|
-
onIntent('escape');
|
|
235
|
-
return;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
258
|
if ((key === 'ArrowRight' || key === 'ArrowLeft') && !handlesKey(event.target, key)) {
|
|
239
259
|
event.preventDefault();
|
|
240
260
|
// In right-to-left pages, the arrow pointing to the start goes forward.
|