@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 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 and <kbd>Esc</kbd> work (but leave text fields, sliders, radio groups and other controls in a custom tooltip alone), 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.
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;AAwDF,gHAAgH;AAChH,wBAAgB,iBAAiB,IAAI,WAAW,CAsI/C"}
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, and keyboard shortcuts. The page is inert while the tour is
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
- element.addEventListener(type, stop);
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;AAkjBhD,kCAAkC;AAClC,eAAO,MAAM,WAAW,EAAE,YAA6E,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.2",
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, and keyboard shortcuts. The page is inert while the tour is
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
- element.addEventListener(type, stop);
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.