@rydr/game-sdk 3.24.0 → 3.25.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/nav/README.md +32 -0
- package/dist/nav/index.d.ts +11 -0
- package/dist/nav/index.d.ts.map +1 -1
- package/dist/nav/index.js +10 -0
- package/dist/nav/index.js.map +1 -1
- package/dist/nav/scroll-nav.d.ts +58 -0
- package/dist/nav/scroll-nav.d.ts.map +1 -0
- package/dist/nav/scroll-nav.js +59 -0
- package/dist/nav/scroll-nav.js.map +1 -0
- package/dist/nav/spatial-nav.d.ts +13 -0
- package/dist/nav/spatial-nav.d.ts.map +1 -1
- package/dist/nav/spatial-nav.js +118 -15
- package/dist/nav/spatial-nav.js.map +1 -1
- package/dist/protocol/version.d.ts +1 -1
- package/dist/protocol/version.js +1 -1
- package/package.json +1 -1
package/dist/nav/README.md
CHANGED
|
@@ -68,3 +68,35 @@ where `onBack` ultimately goes, and any per-item direction quirk (`onDirection`)
|
|
|
68
68
|
- `dispose()` — unsubscribe and drop focus.
|
|
69
69
|
|
|
70
70
|
See `spatial-nav.ts` for the full option list.
|
|
71
|
+
|
|
72
|
+
## Scrolling a long page — `createScrollNav`
|
|
73
|
+
|
|
74
|
+
`createSpatialNav` is for menus you *choose from* (it roves a focus ring between `[data-nav]`
|
|
75
|
+
controls). A long page you *read* — rules, how-to-play, patch notes, credits — wants the opposite:
|
|
76
|
+
no focus, no snapping, just scroll. That's `createScrollNav`.
|
|
77
|
+
|
|
78
|
+
It is **content-agnostic**. On each `UP`/`DOWN` press it scrolls a container by a **fixed fraction of
|
|
79
|
+
that container's own visible height** (default `SCROLL_NAV_STEP` = `0.25`) — every press travels the
|
|
80
|
+
same distance, and the rider drives the pace. `B`/`Z` back out; `A` optionally confirms. It layers on
|
|
81
|
+
top of native scrolling, so the mouse wheel / trackpad / scrollbar keep working.
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
import { createScrollNav } from "@rydr/game-sdk/nav";
|
|
85
|
+
|
|
86
|
+
const scroll = createScrollNav({
|
|
87
|
+
root: readerEl, // the scroll container (overflow-y: auto)
|
|
88
|
+
session, // auto-wires onButton down edges
|
|
89
|
+
cue, // nav.move fires only on a real scroll
|
|
90
|
+
onBack: () => goHome(), // B / Z
|
|
91
|
+
});
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
`createScrollNav(options) → { handle, scrollBy, dispose }`
|
|
95
|
+
|
|
96
|
+
- `handle(name)` — feed one down-edge when you're NOT passing `session` (or when a game gates on its
|
|
97
|
+
screen's visibility, since every screen's nav is alive at once).
|
|
98
|
+
- `scrollBy("UP" | "DOWN")` — programmatic step, identical to the key press.
|
|
99
|
+
- `dispose()` — unsubscribe the session (native scroll position on `root` is untouched).
|
|
100
|
+
|
|
101
|
+
A press at the top/bottom edge is a silent no-op (no false cue). Smooth scroll is used unless
|
|
102
|
+
`prefers-reduced-motion` is set. See `scroll-nav.ts` for the full option list.
|
package/dist/nav/index.d.ts
CHANGED
|
@@ -12,7 +12,18 @@
|
|
|
12
12
|
* ```
|
|
13
13
|
*
|
|
14
14
|
* See `README.md` for the `[data-nav]` / `[nav-focused]` convention and the full options.
|
|
15
|
+
*
|
|
16
|
+
* For a long page that is *read* rather than *chosen from* (rules, how-to-play, patch notes), use
|
|
17
|
+
* {@link createScrollNav} instead — `UP`/`DOWN` scroll the container by a fixed step, no focus, no
|
|
18
|
+
* snapping:
|
|
19
|
+
*
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { createScrollNav } from "@rydr/game-sdk/nav";
|
|
22
|
+
* const scroll = createScrollNav({ root: readerEl, session, onBack: () => goHome() });
|
|
23
|
+
* ```
|
|
15
24
|
*/
|
|
16
25
|
export { createSpatialNav } from "./spatial-nav.js";
|
|
17
26
|
export type { SpatialNav, SpatialNavOptions, NavButtonSource, NavCue } from "./spatial-nav.js";
|
|
27
|
+
export { createScrollNav, SCROLL_NAV_STEP } from "./scroll-nav.js";
|
|
28
|
+
export type { ScrollNav, ScrollNavOptions } from "./scroll-nav.js";
|
|
18
29
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/nav/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nav/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nav/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/nav/index.js
CHANGED
|
@@ -12,6 +12,16 @@
|
|
|
12
12
|
* ```
|
|
13
13
|
*
|
|
14
14
|
* See `README.md` for the `[data-nav]` / `[nav-focused]` convention and the full options.
|
|
15
|
+
*
|
|
16
|
+
* For a long page that is *read* rather than *chosen from* (rules, how-to-play, patch notes), use
|
|
17
|
+
* {@link createScrollNav} instead — `UP`/`DOWN` scroll the container by a fixed step, no focus, no
|
|
18
|
+
* snapping:
|
|
19
|
+
*
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { createScrollNav } from "@rydr/game-sdk/nav";
|
|
22
|
+
* const scroll = createScrollNav({ root: readerEl, session, onBack: () => goHome() });
|
|
23
|
+
* ```
|
|
15
24
|
*/
|
|
16
25
|
export { createSpatialNav } from "./spatial-nav.js";
|
|
26
|
+
export { createScrollNav, SCROLL_NAV_STEP } from "./scroll-nav.js";
|
|
17
27
|
//# sourceMappingURL=index.js.map
|
package/dist/nav/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nav/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nav/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fixed-step scroll navigation for a long content page — the D-pad/arrow counterpart to
|
|
3
|
+
* {@link createSpatialNav} for pages that are *read*, not *chosen from*.
|
|
4
|
+
*
|
|
5
|
+
* Where `createSpatialNav` roves a focus ring between `[data-nav]` controls by geometry, this engine
|
|
6
|
+
* is deliberately **content-agnostic**: it owns no focus, knows nothing about sections, and never
|
|
7
|
+
* snaps. On each `UP`/`DOWN` press it scrolls a container by a **fixed fraction of that container's
|
|
8
|
+
* own visible height** (default a quarter) — so every press travels the same distance and the rider
|
|
9
|
+
* drives the reading pace. `B`/`Z` back out; `A` optionally confirms. Use it for rules / how-to-play
|
|
10
|
+
* pages, patch notes, credits — anything that's a scroll, not a menu.
|
|
11
|
+
*
|
|
12
|
+
* Reads input ONLY through a button source (`session.onButton`) or an explicit `handle` feed — never
|
|
13
|
+
* a raw key listener (see `../protocol/buttons.ts` for why). It layers on top of native scrolling, so
|
|
14
|
+
* the mouse wheel / trackpad / scrollbar keep working untouched.
|
|
15
|
+
*
|
|
16
|
+
* Game usage (session auto-wired, cue wired to the soundboard):
|
|
17
|
+
* import { createScrollNav } from "@rydr/game-sdk/nav";
|
|
18
|
+
* const scroll = createScrollNav({ root: readerEl, session, cue, onBack: () => goHome() });
|
|
19
|
+
*
|
|
20
|
+
* Shell / multiplexed usage (feed edges yourself):
|
|
21
|
+
* const scroll = createScrollNav({ root: readerEl });
|
|
22
|
+
* // …forward down edges: scroll.handle(name)
|
|
23
|
+
*/
|
|
24
|
+
import type { ButtonName } from "../protocol/buttons.js";
|
|
25
|
+
import type { NavButtonSource, NavCue } from "./spatial-nav.js";
|
|
26
|
+
/** Default {@link ScrollNavOptions.step}: a quarter of the container's visible height per press. */
|
|
27
|
+
export declare const SCROLL_NAV_STEP = 0.25;
|
|
28
|
+
export interface ScrollNavOptions {
|
|
29
|
+
/** The scroll container. Its own `clientHeight` sets the per-press distance and its `scrollHeight`
|
|
30
|
+
* the clamp; it must be an actual scroller (`overflow-y: auto|scroll`). */
|
|
31
|
+
root: HTMLElement;
|
|
32
|
+
/**
|
|
33
|
+
* Auto-subscribe to a button source (`PlatformSession` or any `{ onButton }`): its `down` edges are
|
|
34
|
+
* routed to {@link ScrollNav.handle}. Omit when the caller feeds `handle` itself (the shell, or a
|
|
35
|
+
* game that gates on its screen's visibility — every screen's nav is alive at once).
|
|
36
|
+
*/
|
|
37
|
+
session?: NavButtonSource;
|
|
38
|
+
/** Fraction of the container's visible height scrolled per `UP`/`DOWN` press. Default {@link SCROLL_NAV_STEP}. */
|
|
39
|
+
step?: number;
|
|
40
|
+
/** Sink for nav cues — `nav.move` fires only on a *real* scroll, `nav.back` on `B`/`Z`. Omit for silence. */
|
|
41
|
+
cue?: (id: NavCue) => void;
|
|
42
|
+
/** Terminal back (`B`/`Z`) — app-owned (route home / close the page). */
|
|
43
|
+
onBack?: () => void;
|
|
44
|
+
/** Optional confirm (`A`) — e.g. jump to the page's primary CTA. No-op if omitted. */
|
|
45
|
+
onConfirm?: () => void;
|
|
46
|
+
/** Scroll behavior. Default `"smooth"`, auto-downgraded to `"auto"` under `prefers-reduced-motion`. */
|
|
47
|
+
behavior?: ScrollBehavior;
|
|
48
|
+
}
|
|
49
|
+
export interface ScrollNav {
|
|
50
|
+
/** Feed one discrete button (a `down` edge). No-op for names that carry no scroll meaning. */
|
|
51
|
+
handle(name: ButtonName): void;
|
|
52
|
+
/** Programmatic step in a direction — identical to the matching key press (cue included). */
|
|
53
|
+
scrollBy(dir: "UP" | "DOWN"): void;
|
|
54
|
+
/** Tear down: unsubscribe the session. (Native scroll state on `root` is left as-is.) */
|
|
55
|
+
dispose(): void;
|
|
56
|
+
}
|
|
57
|
+
export declare function createScrollNav(opts: ScrollNavOptions): ScrollNav;
|
|
58
|
+
//# sourceMappingURL=scroll-nav.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-nav.d.ts","sourceRoot":"","sources":["../../src/nav/scroll-nav.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEhE,oGAAoG;AACpG,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,MAAM,WAAW,gBAAgB;IAC/B;gFAC4E;IAC5E,IAAI,EAAE,WAAW,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,kHAAkH;IAClH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6GAA6G;IAC7G,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,sFAAsF;IACtF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,uGAAuG;IACvG,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,8FAA8F;IAC9F,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,6FAA6F;IAC7F,QAAQ,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,yFAAyF;IACzF,OAAO,IAAI,IAAI,CAAC;CACjB;AAQD,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,SAAS,CAmDjE"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/** Default {@link ScrollNavOptions.step}: a quarter of the container's visible height per press. */
|
|
2
|
+
export const SCROLL_NAV_STEP = 0.25;
|
|
3
|
+
function prefersReducedMotion() {
|
|
4
|
+
return typeof window !== "undefined" &&
|
|
5
|
+
typeof window.matchMedia === "function" &&
|
|
6
|
+
window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
7
|
+
}
|
|
8
|
+
export function createScrollNav(opts) {
|
|
9
|
+
const { root } = opts;
|
|
10
|
+
const step = opts.step ?? SCROLL_NAV_STEP;
|
|
11
|
+
const behavior = () => (prefersReducedMotion() ? "auto" : (opts.behavior ?? "smooth"));
|
|
12
|
+
function scrollStep(dir) {
|
|
13
|
+
// Clamp to the real scroll range so a press at an edge is a silent no-op (no false cue). Compare
|
|
14
|
+
// against the current position (not the pending smooth-scroll target) — a rider mashing the pad
|
|
15
|
+
// past the edge should simply stop, which this delivers.
|
|
16
|
+
const max = root.scrollHeight - root.clientHeight;
|
|
17
|
+
const cur = root.scrollTop;
|
|
18
|
+
const delta = step * root.clientHeight * (dir === "DOWN" ? 1 : -1);
|
|
19
|
+
const next = Math.max(0, Math.min(max, cur + delta));
|
|
20
|
+
if (next === cur)
|
|
21
|
+
return; // already at that edge — nothing to do, no cue
|
|
22
|
+
root.scrollTo({ top: next, behavior: behavior() });
|
|
23
|
+
opts.cue?.("nav.move");
|
|
24
|
+
}
|
|
25
|
+
const api = {
|
|
26
|
+
handle(name) {
|
|
27
|
+
switch (name) {
|
|
28
|
+
case "UP":
|
|
29
|
+
case "DOWN":
|
|
30
|
+
scrollStep(name);
|
|
31
|
+
return;
|
|
32
|
+
case "A":
|
|
33
|
+
opts.onConfirm?.();
|
|
34
|
+
return;
|
|
35
|
+
case "B":
|
|
36
|
+
case "Z":
|
|
37
|
+
opts.cue?.("nav.back");
|
|
38
|
+
opts.onBack?.();
|
|
39
|
+
return;
|
|
40
|
+
default:
|
|
41
|
+
return; // LEFT/RIGHT/Y/LT/RT carry no scroll meaning
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
scrollBy(dir) {
|
|
45
|
+
scrollStep(dir);
|
|
46
|
+
},
|
|
47
|
+
dispose() {
|
|
48
|
+
unsub?.();
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
// Auto-wire the session's down edges (the default `onButton` already swallows held re-emits, so one
|
|
52
|
+
// press = one step — menu-correct, no runaway scrolling from a held pad).
|
|
53
|
+
const unsub = opts.session?.onButton((e) => {
|
|
54
|
+
if (e.edge === "down")
|
|
55
|
+
api.handle(e.name);
|
|
56
|
+
});
|
|
57
|
+
return api;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=scroll-nav.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-nav.js","sourceRoot":"","sources":["../../src/nav/scroll-nav.ts"],"names":[],"mappings":"AA0BA,oGAAoG;AACpG,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AAiCpC,SAAS,oBAAoB;IAC3B,OAAO,OAAO,MAAM,KAAK,WAAW;QAClC,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU;QACvC,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC,OAAO,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAsB;IACpD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC;IAE1C,MAAM,QAAQ,GAAG,GAAmB,EAAE,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC;IAEvG,SAAS,UAAU,CAAC,GAAkB;QACpC,iGAAiG;QACjG,gGAAgG;QAChG,yDAAyD;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;QACrD,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,CAAC,+CAA+C;QACzE,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,GAAG,GAAc;QACrB,MAAM,CAAC,IAAgB;YACrB,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,IAAI,CAAC;gBAAC,KAAK,MAAM;oBACpB,UAAU,CAAC,IAAI,CAAC,CAAC;oBACjB,OAAO;gBACT,KAAK,GAAG;oBACN,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;oBACnB,OAAO;gBACT,KAAK,GAAG,CAAC;gBAAC,KAAK,GAAG;oBAChB,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;oBACvB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;oBAChB,OAAO;gBACT;oBACE,OAAO,CAAC,6CAA6C;YACzD,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,GAAkB;YACzB,UAAU,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;YACL,KAAK,EAAE,EAAE,CAAC;QACZ,CAAC;KACF,CAAC;IAEF,oGAAoG;IACpG,0EAA0E;IAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;QACzC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -73,6 +73,19 @@ export interface SpatialNavOptions {
|
|
|
73
73
|
* `data-nav-kind="carousel"` scrolls LEFT/RIGHT in place. Return `true` to consume the press.
|
|
74
74
|
*/
|
|
75
75
|
onDirection?: (el: HTMLElement, name: ButtonName) => boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Group `[data-nav]` items into zones (sections/containers) by this selector — each item belongs to
|
|
78
|
+
* its nearest ancestor matching it. With zones, a direction press first looks for a neighbour WITHIN
|
|
79
|
+
* the current zone; only when the zone has no neighbour that way does focus cross into the adjacent
|
|
80
|
+
* zone — chosen by the zones' own bounds (edge-based, so a full-width section above/below never reads
|
|
81
|
+
* as a left/right neighbour) — landing on that zone's entry item and resetting the lane memory. This
|
|
82
|
+
* gives the natural "navigate inside a block; on leaving it, enter the next block at its start"
|
|
83
|
+
* behaviour: e.g. a header row, a hero, and a games grid each declared a zone. A zone element may
|
|
84
|
+
* override its entry item with `data-nav-zone-enter="first" | "last" | "nearest"` (default `first` —
|
|
85
|
+
* the zone's leftmost/topmost item in DOM order). Omit to disable zones: flat geometry over every
|
|
86
|
+
* item, exactly as before.
|
|
87
|
+
*/
|
|
88
|
+
zoneSelector?: string;
|
|
76
89
|
}
|
|
77
90
|
export interface SpatialNav {
|
|
78
91
|
/** Feed one discrete button (a `down` edge). No-op for non-nav names. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spatial-nav.d.ts","sourceRoot":"","sources":["../../src/nav/spatial-nav.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAErE,wGAAwG;AACxG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAC/E;AAED,mGAAmG;AACnG,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,kFAAkF;IAClF,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4HAA4H;IAC5H,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8FAA8F;IAC9F,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,qIAAqI;IACrI,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6GAA6G;IAC7G,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,yEAAyE;IACzE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,6FAA6F;IAC7F,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"spatial-nav.d.ts","sourceRoot":"","sources":["../../src/nav/spatial-nav.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAErE,wGAAwG;AACxG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAC/E;AAED,mGAAmG;AACnG,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,kFAAkF;IAClF,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4HAA4H;IAC5H,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8FAA8F;IAC9F,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,qIAAqI;IACrI,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6GAA6G;IAC7G,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,yEAAyE;IACzE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,6FAA6F;IAC7F,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC;IAC7D;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,yEAAyE;IACzE,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,qFAAqF;IACrF,UAAU,IAAI,IAAI,CAAC;IACnB,qEAAqE;IACrE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;IACpC,wGAAwG;IACxG,OAAO,IAAI,WAAW,GAAG,IAAI,CAAC;IAC9B,sCAAsC;IACtC,KAAK,IAAI,IAAI,CAAC;IACd,4FAA4F;IAC5F,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,uEAAuE;IACvE,SAAS,IAAI,IAAI,CAAC;IAClB,yDAAyD;IACzD,OAAO,IAAI,IAAI,CAAC;CACjB;AAkFD,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,iBAAsB,GAAG,UAAU,CAsQzE"}
|
package/dist/nav/spatial-nav.js
CHANGED
|
@@ -76,8 +76,15 @@ function farthestOpposite(list, cur, dir) {
|
|
|
76
76
|
}
|
|
77
77
|
export function createSpatialNav(opts = {}) {
|
|
78
78
|
const selector = opts.selector ?? "[data-nav]";
|
|
79
|
+
const zoneSelector = opts.zoneSelector;
|
|
79
80
|
if (opts.ring !== false)
|
|
80
81
|
injectRingCss();
|
|
82
|
+
// A `[data-nav]` item's zone container (nearest ancestor matching `zoneSelector`), or `null` when
|
|
83
|
+
// zones are off. `zoneKey` maps each item to a stable zone identity for grouping — the zone element,
|
|
84
|
+
// or the item itself when it has no zone ancestor (a loose item behaves as its own singleton zone, so
|
|
85
|
+
// it stays reachable rather than getting stranded outside every group).
|
|
86
|
+
const zoneOf = (el) => (zoneSelector ? el.closest(zoneSelector) : null);
|
|
87
|
+
const zoneKey = (el) => (zoneOf(el) ?? el);
|
|
81
88
|
// Screen stack: each entry is a scope root + its remembered focused element. Top is active.
|
|
82
89
|
const stack = [
|
|
83
90
|
{ root: opts.root ?? (typeof document !== "undefined" ? document : null), current: null },
|
|
@@ -112,6 +119,69 @@ export function createSpatialNav(opts = {}) {
|
|
|
112
119
|
el.focus();
|
|
113
120
|
opts.onFocusChange?.(el);
|
|
114
121
|
}
|
|
122
|
+
/** The distinct zones present among `list` (deduped, in first-seen DOM order). */
|
|
123
|
+
const zonesOf = (list) => {
|
|
124
|
+
const seen = new Set();
|
|
125
|
+
const out = [];
|
|
126
|
+
for (const el of list) {
|
|
127
|
+
const z = zoneKey(el);
|
|
128
|
+
if (!seen.has(z)) {
|
|
129
|
+
seen.add(z);
|
|
130
|
+
out.push(z);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return out;
|
|
134
|
+
};
|
|
135
|
+
/** The nearest OTHER zone whose bounds lie in `dir` from `curZone` — edge-based, so a full-width
|
|
136
|
+
* zone directly above/below never counts as a left/right neighbour (and vice-versa). */
|
|
137
|
+
const nearestZoneInDir = (curZone, dir, list) => {
|
|
138
|
+
const from = rectOf(curZone);
|
|
139
|
+
let best = null;
|
|
140
|
+
let bestGap = Infinity;
|
|
141
|
+
for (const z of zonesOf(list)) {
|
|
142
|
+
if (z === curZone)
|
|
143
|
+
continue;
|
|
144
|
+
const c = rectOf(z);
|
|
145
|
+
let gap = null;
|
|
146
|
+
if (dir === "DOWN")
|
|
147
|
+
gap = c.top >= from.bottom - DIR_TOL ? c.top - from.bottom : null;
|
|
148
|
+
else if (dir === "UP")
|
|
149
|
+
gap = c.bottom <= from.top + DIR_TOL ? from.top - c.bottom : null;
|
|
150
|
+
else if (dir === "RIGHT")
|
|
151
|
+
gap = c.left >= from.right - DIR_TOL ? c.left - from.right : null;
|
|
152
|
+
else if (dir === "LEFT")
|
|
153
|
+
gap = c.right <= from.left + DIR_TOL ? from.left - c.right : null;
|
|
154
|
+
if (gap !== null && gap < bestGap) {
|
|
155
|
+
bestGap = gap;
|
|
156
|
+
best = z;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return best;
|
|
160
|
+
};
|
|
161
|
+
/** Where focus lands when ENTERING `zone`: its first `[data-nav]` in DOM order by default
|
|
162
|
+
* (leftmost/topmost), or per the zone's `data-nav-zone-enter` = first | last | nearest. */
|
|
163
|
+
const zoneEntry = (zone, list, from) => {
|
|
164
|
+
const members = list.filter((el) => zoneKey(el) === zone);
|
|
165
|
+
if (members.length === 0)
|
|
166
|
+
return null;
|
|
167
|
+
const strategy = zone.getAttribute("data-nav-zone-enter") ?? "first";
|
|
168
|
+
if (strategy === "last")
|
|
169
|
+
return members[members.length - 1];
|
|
170
|
+
if (strategy === "nearest") {
|
|
171
|
+
let best = members[0];
|
|
172
|
+
let bestD = Infinity;
|
|
173
|
+
for (const el of members) {
|
|
174
|
+
const rc = rectOf(el);
|
|
175
|
+
const d = Math.hypot(rc.cx - from.cx, rc.cy - from.cy);
|
|
176
|
+
if (d < bestD) {
|
|
177
|
+
bestD = d;
|
|
178
|
+
best = el;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return best;
|
|
182
|
+
}
|
|
183
|
+
return members[0]; // "first"
|
|
184
|
+
};
|
|
115
185
|
function move(dir) {
|
|
116
186
|
const list = items();
|
|
117
187
|
if (list.length === 0)
|
|
@@ -142,21 +212,50 @@ export function createSpatialNav(opts = {}) {
|
|
|
142
212
|
desiredX = null;
|
|
143
213
|
}
|
|
144
214
|
};
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
215
|
+
/** Nearest neighbour by directional cost among `candidates` (lower cost wins). */
|
|
216
|
+
const nearestIn = (candidates) => {
|
|
217
|
+
let best = null;
|
|
218
|
+
let bestD = Infinity;
|
|
219
|
+
for (const el of candidates) {
|
|
220
|
+
if (el === cur)
|
|
221
|
+
continue;
|
|
222
|
+
const cost = directionalCost(from, rectOf(el), dir, crossRef);
|
|
223
|
+
if (cost !== null && cost < bestD) {
|
|
224
|
+
bestD = cost;
|
|
225
|
+
best = el;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return best;
|
|
229
|
+
};
|
|
230
|
+
if (zoneSelector) {
|
|
231
|
+
const curZone = zoneKey(cur);
|
|
232
|
+
// 1) Stay inside the current zone while it has a neighbour in this direction.
|
|
233
|
+
const inZone = nearestIn(list.filter((el) => zoneKey(el) === curZone));
|
|
234
|
+
if (inZone) {
|
|
235
|
+
rememberLane();
|
|
236
|
+
setFocus(inZone);
|
|
237
|
+
return;
|
|
154
238
|
}
|
|
239
|
+
// 2) Zone exhausted that way — cross into the adjacent zone at its entry item; reset the lane so
|
|
240
|
+
// the next move starts fresh from that item (a new column, not the one we arrived carrying).
|
|
241
|
+
const target = nearestZoneInDir(curZone, dir, list);
|
|
242
|
+
if (target) {
|
|
243
|
+
const entry = zoneEntry(target, list, from);
|
|
244
|
+
if (entry) {
|
|
245
|
+
resetLane();
|
|
246
|
+
setFocus(entry);
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
// 3) No zone that way — fall through to wrap / edge-scroll below.
|
|
155
251
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
252
|
+
else {
|
|
253
|
+
const best = nearestIn(list);
|
|
254
|
+
if (best) {
|
|
255
|
+
rememberLane();
|
|
256
|
+
setFocus(best);
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
160
259
|
}
|
|
161
260
|
// No neighbour in that direction: wrap to the far side, or snap the page to the top on UP.
|
|
162
261
|
if (opts.wrap) {
|
|
@@ -190,12 +289,16 @@ export function createSpatialNav(opts = {}) {
|
|
|
190
289
|
return;
|
|
191
290
|
case "A": {
|
|
192
291
|
const el = top().current;
|
|
193
|
-
|
|
292
|
+
// Re-validate against the live list, exactly like move() does: focus can go stale across a
|
|
293
|
+
// re-render (the remembered element removed, disabled, or hidden), and activating a detached
|
|
294
|
+
// node fires its last-rendered handler out of context. If stale, reveal the first item
|
|
295
|
+
// instead of blind-activating.
|
|
296
|
+
if (!el || !items().includes(el)) {
|
|
194
297
|
const first = items()[0];
|
|
195
298
|
if (first)
|
|
196
299
|
setFocus(first);
|
|
197
300
|
return;
|
|
198
|
-
}
|
|
301
|
+
}
|
|
199
302
|
opts.cue?.("nav.confirm");
|
|
200
303
|
if (opts.onActivate)
|
|
201
304
|
opts.onActivate(el);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spatial-nav.js","sourceRoot":"","sources":["../../src/nav/spatial-nav.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spatial-nav.js","sourceRoot":"","sources":["../../src/nav/spatial-nav.ts"],"names":[],"mappings":"AAkHA,gFAAgF;AAChF,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAEzC,SAAS,UAAU,CAAC,EAAe;IACjC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;IACvB,OAAO,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,QAAQ,IAAI,EAAE,CAAC,iBAAiB,CAAC;AAC3F,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC;QAAE,OAAO;IAC1F,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,iBAAiB,CAAC;IAC7B,qGAAqG;IACrG,KAAK,CAAC,WAAW,GAAG,6DAA6D;QAC/E,mEAAmE;QACnE,iDAAiD,CAAC;IACpD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,wGAAwG;AACxG,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,sGAAsG;AACtG,MAAM,WAAW,GAAG,CAAC,CAAC;AAItB,SAAS,MAAM,CAAC,EAAe;IAC7B,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;IACrC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;AAC5H,CAAC;AAED,8EAA8E;AAC9E,SAAS,WAAW,CAAC,CAAO,EAAE,CAAO,EAAE,GAAe;IACpD,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC;QAC1C,KAAK,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC;QAC3C,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC;QAC1C,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,CAAO,EAAE,CAAO,EAAE,GAAe,EAAE,QAAgB;IAC1E,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,QAAQ,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,CAAC;IAChD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACrF,OAAO,OAAO,GAAG,QAAQ,GAAG,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC5G,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACrF,OAAO,OAAO,GAAG,QAAQ,GAAG,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AAC5G,CAAC;AAED,mGAAmG;AACnG,SAAS,gBAAgB,CAAC,IAAmB,EAAE,GAAgB,EAAE,GAAe;IAC9E,IAAI,IAAI,GAAuB,IAAI,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC;IACtB,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,EAAE,KAAK,GAAG;YAAE,SAAS;QACzB,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,0FAA0F;QAC1F,MAAM,CAAC,GAAG,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;YAAC,KAAK,GAAG,CAAC,CAAC;YAAC,IAAI,GAAG,EAAE,CAAC;QAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAA0B,EAAE;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC;IAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACvC,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;QAAE,aAAa,EAAE,CAAC;IAEzC,kGAAkG;IAClG,qGAAqG;IACrG,sGAAsG;IACtG,wEAAwE;IACxE,MAAM,MAAM,GAAG,CAAC,EAAe,EAAkB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrG,MAAM,OAAO,GAAG,CAAC,EAAe,EAAe,EAAE,CAAC,CAAE,MAAM,CAAC,EAAE,CAAwB,IAAI,EAAE,CAAC,CAAC;IAE7F,4FAA4F;IAC5F,MAAM,KAAK,GAAwD;QACjE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,IAA8B,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;KACrH,CAAC;IACF,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAE3C,kGAAkG;IAClG,mGAAmG;IACnG,4DAA4D;IAC5D,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,MAAM,SAAS,GAAG,GAAS,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpE,iGAAiG;IACjG,+FAA+F;IAC/F,4DAA4D;IAC5D,MAAM,KAAK,GAAG,GAAkB,EAAE,CAChC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAc,QAAQ,CAAC,CAAC,CAAC,MAAM,CACnE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAE,EAAwB,CAAC,QAAQ,CAC9E,CAAC;IAEJ,SAAS,QAAQ,CAAC,EAAsB,EAAE,MAAoE,EAAE;QAC9G,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE;YAAE,OAAO;QACjC,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;QAC9C,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK;YAAE,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,IAAI,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACnG,IAAI,UAAU,CAAC,EAAE,CAAC;YAAE,EAAE,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,kFAAkF;IAClF,MAAM,OAAO,GAAG,CAAC,IAAmB,EAAiB,EAAE;QACrD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAe,CAAC;QACpC,MAAM,GAAG,GAAkB,EAAE,CAAC;QAC9B,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC;QACjD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF;6FACyF;IACzF,MAAM,gBAAgB,GAAG,CAAC,OAAoB,EAAE,GAAe,EAAE,IAAmB,EAAsB,EAAE;QAC1G,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,IAAI,GAAuB,IAAI,CAAC;QACpC,IAAI,OAAO,GAAG,QAAQ,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,OAAO;gBAAE,SAAS;YAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,GAAG,GAAkB,IAAI,CAAC;YAC9B,IAAI,GAAG,KAAK,MAAM;gBAAE,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;iBACjF,IAAI,GAAG,KAAK,IAAI;gBAAE,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;iBACpF,IAAI,GAAG,KAAK,OAAO;gBAAE,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;iBACvF,IAAI,GAAG,KAAK,MAAM;gBAAE,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3F,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,GAAG,OAAO,EAAE,CAAC;gBAAC,OAAO,GAAG,GAAG,CAAC;gBAAC,IAAI,GAAG,CAAC,CAAC;YAAC,CAAC;QACjE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF;gGAC4F;IAC5F,MAAM,SAAS,GAAG,CAAC,IAAiB,EAAE,IAAmB,EAAE,IAAU,EAAsB,EAAE;QAC3F,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,IAAI,OAAO,CAAC;QACrE,IAAI,QAAQ,KAAK,MAAM;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QAC7D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;YACvB,IAAI,KAAK,GAAG,QAAQ,CAAC;YACrB,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;gBACzB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;gBACtB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvD,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;oBAAC,KAAK,GAAG,CAAC,CAAC;oBAAC,IAAI,GAAG,EAAE,CAAC;gBAAC,CAAC;YAC1C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,UAAU;IAChC,CAAC,CAAC;IAEF,SAAS,IAAI,CAAC,GAAe;QAC3B,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC9B,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;QAE1B,kGAAkG;QAClG,kGAAkG;QAClG,kGAAkG;QAClG,uBAAuB;QACvB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;YAC7E,OAAO;QACT,CAAC;QAED,sFAAsF;QACtF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YAAE,OAAO;QAEzC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,QAAQ,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,CAAC;QAChD,gGAAgG;QAChG,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,GAAS,EAAE;YAC9B,IAAI,QAAQ,EAAE,CAAC;gBAAC,QAAQ,GAAG,QAAQ,CAAC;gBAAC,QAAQ,GAAG,IAAI,CAAC;YAAC,CAAC;iBAAM,CAAC;gBAAC,QAAQ,GAAG,QAAQ,CAAC;gBAAC,QAAQ,GAAG,IAAI,CAAC;YAAC,CAAC;QACxG,CAAC,CAAC;QACF,kFAAkF;QAClF,MAAM,SAAS,GAAG,CAAC,UAAyB,EAAsB,EAAE;YAClE,IAAI,IAAI,GAAuB,IAAI,CAAC;YACpC,IAAI,KAAK,GAAG,QAAQ,CAAC;YACrB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC5B,IAAI,EAAE,KAAK,GAAG;oBAAE,SAAS;gBACzB,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC9D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC;oBAAC,IAAI,GAAG,EAAE,CAAC;gBAAC,CAAC;YACjE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,8EAA8E;YAC9E,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;YACvE,IAAI,MAAM,EAAE,CAAC;gBAAC,YAAY,EAAE,CAAC;gBAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACzD,iGAAiG;YACjG,gGAAgG;YAChG,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC5C,IAAI,KAAK,EAAE,CAAC;oBAAC,SAAS,EAAE,CAAC;oBAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAAC,OAAO;gBAAC,CAAC;YACtD,CAAC;YACD,kEAAkE;QACpE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,IAAI,EAAE,CAAC;gBAAC,YAAY,EAAE,CAAC;gBAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;QACvD,CAAC;QAED,2FAA2F;QAC3F,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC7C,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;gBAAC,YAAY,EAAE,CAAC;gBAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YACxE,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,2CAA2C;QAC9F,CAAC;IACH,CAAC;IAED,SAAS,IAAI;QACX,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;QACvB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAClD,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;IAClB,CAAC;IAED,MAAM,GAAG,GAAe;QACtB,MAAM,CAAC,IAAgB;YACrB,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,IAAI,CAAC;gBAAC,KAAK,MAAM,CAAC;gBAAC,KAAK,MAAM,CAAC;gBAAC,KAAK,OAAO;oBAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;oBACX,OAAO;gBACT,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;oBACzB,2FAA2F;oBAC3F,6FAA6F;oBAC7F,uFAAuF;oBACvF,+BAA+B;oBAC/B,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;wBAAC,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;wBAAC,IAAI,KAAK;4BAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAAC,OAAO;oBAAC,CAAC;oBACnG,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC;oBAC1B,IAAI,IAAI,CAAC,UAAU;wBAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;;wBACpC,EAAE,CAAC,KAAK,EAAE,CAAC;oBAChB,OAAO;gBACT,CAAC;gBACD,KAAK,GAAG,CAAC;gBAAC,KAAK,GAAG;oBAChB,IAAI,EAAE,CAAC;oBACP,OAAO;gBACT;oBACE,OAAO,CAAC,mCAAmC;YAC/C,CAAC;QACH,CAAC;QACD,UAAU;YACR,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,KAAK,EAAE,CAAC;gBAAC,SAAS,EAAE,CAAC;gBAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,CAAC;QAC/E,CAAC;QACD,UAAU,CAAC,KAAa;YACtB,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC;YAChE,SAAS,EAAE,CAAC;YACZ,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,KAAK,CAAC,EAAsB;YAC1B,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAAC,SAAS,EAAE,CAAC;gBAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACzD,IAAI,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,EAAE,CAAC;gBAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,CAAC;QAC3F,CAAC;QACD,OAAO;YACL,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QACvB,CAAC;QACD,KAAK;YACH,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QACD,UAAU,CAAC,IAAgB;YACzB,GAAG,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;YAC9C,SAAS,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,SAAS;YACP,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;gBAAE,OAAO;YAC9B,GAAG,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;YAC9C,SAAS,EAAE,CAAC;YACZ,KAAK,CAAC,GAAG,EAAE,CAAC;YACZ,GAAG,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,+CAA+C;YAC/F,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QACD,OAAO;YACL,KAAK,EAAE,EAAE,CAAC;YACV,cAAc,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,IAAI,KAAK;gBAAE,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;QACnE,CAAC;KACF,CAAC;IAEF,uGAAuG;IACvG,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;QACzC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,qGAAqG;IACrG,qGAAqG;IACrG,sGAAsG;IACtG,+FAA+F;IAC/F,iGAAiG;IACjG,kCAAkC;IAClC,IAAI,cAAc,GAAG,GAAS,EAAE,GAAE,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,WAAW,GAAuB,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzG,MAAM,aAAa,GAAG,CAAC,CAAQ,EAAQ,EAAE;YACvC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YACxB,IAAI,CAAC,CAAC,MAAM,YAAY,OAAO,CAAC;gBAAE,OAAO;YACzC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAc,QAAQ,CAAC,CAAC;YACnD,8FAA8F;YAC9F,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,OAAO;gBAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC;QACF,WAAW,EAAE,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAC5D,cAAc,GAAG,GAAS,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
export declare const RYDR_PROTOCOL_VERSION: 22;
|
|
10
10
|
/** Semver of this SDK build. Sent in the handshake for telemetry/debugging.
|
|
11
11
|
* (Bumped to 2.0.0 by `npm version major` on release — see CHANGELOG [Unreleased].) */
|
|
12
|
-
export declare const RYDR_SDK_VERSION = "3.
|
|
12
|
+
export declare const RYDR_SDK_VERSION = "3.25.0";
|
|
13
13
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/protocol/version.js
CHANGED
|
@@ -89,5 +89,5 @@
|
|
|
89
89
|
export const RYDR_PROTOCOL_VERSION = 22;
|
|
90
90
|
/** Semver of this SDK build. Sent in the handshake for telemetry/debugging.
|
|
91
91
|
* (Bumped to 2.0.0 by `npm version major` on release — see CHANGELOG [Unreleased].) */
|
|
92
|
-
export const RYDR_SDK_VERSION = "3.
|
|
92
|
+
export const RYDR_SDK_VERSION = "3.25.0";
|
|
93
93
|
//# sourceMappingURL=version.js.map
|