phase 0.0.5 → 0.0.7

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/README.md CHANGED
@@ -34,6 +34,7 @@ Each guarantee is a [tested invariant](#guarantees), not an aspiration. Every ex
34
34
  - [createSight](#createsight)
35
35
  - [createLifecycle](#createlifecycle)
36
36
  - [createScrollProgress](#createscrollprogress)
37
+ - [createScroll](#createscroll)
37
38
  - [prefersReducedMotion](#prefersreducedmotion)
38
39
  - [Easing and math](#easing-and-math)
39
40
  - [Choosing a primitive](#choosing-a-primitive)
@@ -44,6 +45,7 @@ Each guarantee is a [tested invariant](#guarantees), not an aspiration. Every ex
44
45
  - [useTween](#usetween)
45
46
  - [usePresence](#usepresence)
46
47
  - [useScrollProgress](#usescrollprogress)
48
+ - [useScroll](#usescroll)
47
49
  - [Utility hooks](#utility-hooks)
48
50
  - [React components](#react-components)
49
51
  - [How animations work](#how-animations-work)
@@ -323,7 +325,7 @@ Pause priority is `reduced-motion` > `sight` > `manual`.
323
325
 
324
326
  Reports what fraction of an element is currently visible in the viewport (0–1), via the shared IntersectionObserver pool. Zero forced reflows, zero extra observers. Ideal for reveal/opacity effects.
325
327
 
326
- > **Not a scroll-scrubbing engine.** This reports `intersectionRatio`, which plateaus for tall elements once they fill the viewport. For continuous scroll-driven animation, use `motion`'s `useScroll` or the native `ScrollTimeline` API.
328
+ > **Visibility ratio, not scroll offset.** This reports `intersectionRatio` (how much of an element is visible in the viewport), which plateaus for tall elements once they fill it. For a scroll container's _own_ offset (scrollbars, carousels) use [`createScroll`](#createscroll); for CSS-declarative scroll-linked animation use the native `ScrollTimeline` API; for spring/gesture scroll use `motion`.
327
329
 
328
330
  ```ts
329
331
  import { createScrollProgress } from 'phase';
@@ -353,6 +355,49 @@ The `steps` option controls threshold granularity. Default `20` generates 21 eve
353
355
  | `root` | `Element \| Document \| null` | — | IO root element |
354
356
  | `rootMargin` | `string` | — | IO root margin |
355
357
 
358
+ ### createScroll
359
+
360
+ Tracks a scroll container's offset and progress. Reads `scrollLeft`/`scrollTop` once per rAF frame and reads the reflow-heavy geometry (`scrollWidth`/`clientWidth`) only on resize or explicit `measure()`, never on the scroll path. Auto-pauses off-screen via the shared IntersectionObserver pool. This is to `scroll` + `scrollWidth` what `createPointer` is to `pointermove` + `getBoundingClientRect`.
361
+
362
+ > **Scroll offset, not visibility ratio.** This reports the element's own scroll position (for scrollbars, carousels, position indicators). For _how much of an element is in the viewport_, use [`createScrollProgress`](#createscrollprogress); for CSS-declarative scroll-linked animation, use the native `ScrollTimeline` API.
363
+
364
+ ```ts
365
+ import { createScroll } from 'phase';
366
+
367
+ const scroll = createScroll({
368
+ element: viewport,
369
+ onScroll: (s) => {
370
+ // thumb CSS needs `transform-origin: left` so scaleX anchors to the track start
371
+ thumb.style.transform = `translateX(${s.progressX * (1 - s.visibleX) * 100}%) scaleX(${s.visibleX})`;
372
+ prevButton.disabled = s.x <= 1;
373
+ nextButton.disabled = s.x >= s.maxX - 1;
374
+ },
375
+ });
376
+
377
+ // scroll.state.progressX === 0.5 (synchronous read)
378
+
379
+ // after mutating scrollable content:
380
+ scroll.measure();
381
+
382
+ // cleanup:
383
+ scroll.stop();
384
+ ```
385
+
386
+ `onScroll` receives the same `ScrollState` object every frame (mutated in place, zero per-frame allocations): `x`, `y`, `maxX`, `maxY`, `progressX`, `progressY`, and the visible fractions `visibleX`/`visibleY` (`clientWidth / scrollWidth`, i.e. a scrollbar thumb's `scaleX`). The `ResizeObserver` recomputes geometry on container resize; call `measure()` after content changes that alter `scrollWidth`.
387
+
388
+ #### Scroll options
389
+
390
+ | Option | Type | Default | Description |
391
+ | --------------------- | ------------------------------ | --------- | -------------------------------------------------- |
392
+ | `element` | `Element` | required | Scroll container to track |
393
+ | `onScroll` | `(state: ScrollState) => void` | required | Called once per rAF frame with position + progress |
394
+ | `onPhaseChange` | `(phase, reason) => void` | — | Called on phase transitions |
395
+ | `visibility` | `'pause' \| 'ignore'` | `'pause'` | Pause tracking when off-screen, or ignore |
396
+ | `intersectionOptions` | `IntersectionObserverInit` | — | Forwarded to the visibility observer |
397
+ | `signal` | `AbortSignal` | — | Stops the tracker when aborted |
398
+
399
+ The options type is `CreateScrollOptions` (`ScrollOptions` is a `lib.dom` global and must not be shadowed).
400
+
356
401
  ### prefersReducedMotion
357
402
 
358
403
  Returns `true` when reduced motion is enabled at the OS level. Use it to gate expensive setup or dynamic imports.
@@ -576,7 +621,7 @@ return (
576
621
 
577
622
  ### useScrollProgress
578
623
 
579
- Element visibility ratio as a 0–1 value. Wraps `createScrollProgress` with React lifecycle management (see its [note on scope](#createscrollprogress) for the distinction between visibility ratio and scroll-scrubbing).
624
+ Element visibility ratio as a 0–1 value. Wraps `createScrollProgress` with React lifecycle management. This is a _visibility_ fraction (how much of the element is on screen); for a scroll container's own _position_ (scrollbars, carousels) use [`useScroll`](#usescroll) instead. See the [note on scope](#createscrollprogress) for the full distinction.
580
625
 
581
626
  ```tsx
582
627
  import { useScrollProgress } from 'phase/react';
@@ -593,6 +638,36 @@ function FadeIn({ children }) {
593
638
 
594
639
  Re-renders only at threshold crossings (~20 per full viewport traversal at default steps). `progress` is `0` before first observation.
595
640
 
641
+ ### useScroll
642
+
643
+ Scroll offset and progress for a scroll container. Wraps `createScroll` with React lifecycle management. Position is delivered imperatively via `onScroll` (never per-frame state); only the phase (`tracking`/`paused`) is reactive. Mirrors `usePointer`.
644
+
645
+ ```tsx
646
+ import { useRef } from 'react';
647
+ import { useScroll } from 'phase/react';
648
+
649
+ function Carousel({ children }) {
650
+ // thumb uses `origin-left` so scaleX anchors to the track start
651
+ const thumbRef = useRef<HTMLDivElement>(null);
652
+ const { ref, measure } = useScroll<HTMLDivElement>({
653
+ onScroll: (s) => {
654
+ thumbRef.current?.style.setProperty(
655
+ 'transform',
656
+ `translateX(${s.progressX * (1 - s.visibleX) * 100}%) scaleX(${s.visibleX})`,
657
+ );
658
+ },
659
+ });
660
+
661
+ return (
662
+ <div ref={ref} className="overflow-x-auto">
663
+ {children}
664
+ </div>
665
+ );
666
+ }
667
+ ```
668
+
669
+ Scrolling writes to the DOM directly with zero re-renders. Read the latest position on demand from `stateRef.current` (e.g. inside a `useLoop` tick), and call `measure()` after changing scrollable content.
670
+
596
671
  ### Utility hooks
597
672
 
598
673
  | Hook | Purpose |
@@ -898,42 +973,46 @@ Minimal footprint is a core promise (see [Why phase](#why-phase)). Every export
898
973
  | Export | Size (min+brotli) |
899
974
  | ------------------------- | ----------------: |
900
975
  | **Core** | |
901
- | `createTicker` | 837 B |
976
+ | `createTicker` | 834 B |
902
977
  | `createSight` | 963 B |
903
- | `createLifecycle` | 1.48 kB |
904
- | `createLoop` | 2.6 kB |
905
- | `createScrollProgress` | 869 B |
978
+ | `createLifecycle` | 1.47 kB |
979
+ | `createLoop` | 2.59 kB |
980
+ | `createScrollProgress` | 878 B |
906
981
  | `createRenderState` | 495 B |
907
982
  | `createDevicePixelRatio` | 544 B |
908
- | `createMutation` | 1.2 kB |
983
+ | `createMutation` | 1.17 kB |
984
+ | `createPointer` | 1.26 kB |
985
+ | `createScroll` | 1.45 kB |
909
986
  | `whenIdle` | 409 B |
910
987
  | `prefersReducedMotion` | 101 B |
911
988
  | **Ease** | |
912
989
  | `ease (all)` | 210 B |
913
990
  | **React** | |
914
991
  | `useLoop` | 2.81 kB |
915
- | `useLifecycle` | 1.68 kB |
992
+ | `useLifecycle` | 1.69 kB |
916
993
  | `useSight` | 1.18 kB |
917
994
  | `useCanvas` | 3.44 kB |
918
- | `useMutation` | 1.38 kB |
919
- | `useTween` | 620 B |
995
+ | `useMutation` | 1.36 kB |
996
+ | `usePointer` | 1.48 kB |
997
+ | `useScroll` | 1.71 kB |
998
+ | `useTween` | 617 B |
920
999
  | `usePresence` | 593 B |
921
- | `useScrollProgress` | 996 B |
922
- | `useSize` | 388 B |
923
- | `useContainerQuery` | 365 B |
924
- | `useMediaQuery` | 246 B |
925
- | `usePrefersReducedMotion` | 273 B |
1000
+ | `useScrollProgress` | 993 B |
1001
+ | `useSize` | 384 B |
1002
+ | `useContainerQuery` | 357 B |
1003
+ | `useMediaQuery` | 245 B |
1004
+ | `usePrefersReducedMotion` | 272 B |
926
1005
  | `useDevicePixelRatio` | 231 B |
927
1006
  | `useSyncedRef` | 22 B |
928
1007
  | `useStableCallback` | 39 B |
929
- | `Presence` | 743 B |
1008
+ | `Presence` | 739 B |
930
1009
  | `WhenVisible` | 1.44 kB |
931
- | `WhenIdle` | 593 B |
932
- | `Defer` | 85 B |
1010
+ | `WhenIdle` | 592 B |
1011
+ | `Defer` | 86 B |
933
1012
  | `useIdle` | 435 B |
934
1013
  | `useWhenIdle` | 449 B |
935
1014
  | `useRenderState` | 527 B |
936
- | `Swap` | 1.13 kB |
1015
+ | `Swap` | 1.12 kB |
937
1016
 
938
1017
  <!-- SIZE-TABLE:END -->
939
1018
 
@@ -271,5 +271,92 @@ interface Mutation {
271
271
  /** Lifecycle-aware MutationObserver with rAF-coalesced callbacks. */
272
272
  declare function createMutation(options: MutationOptions): Mutation;
273
273
  //#endregion
274
- export { SightReason as A, LifecyclePhase as C, Sight as D, createLifecycle as E, TickerPhase as F, TickerReason as I, createTicker as L, FrameState as M, Ticker as N, SightOptions as O, TickerOptions as P, LifecycleOptions as S, LifecycleReducedMotion as T, LoopReason as _, createMutation as a, createLoop as b, RenderPhase as c, createRenderState as d, DegradedBehavior as f, LoopPhase as g, LoopOptions as h, MutationReason as i, createSight as j, SightPhase as k, RenderState as l, Loop as m, MutationOptions as n, IdleOptions as o, DegradedReason as p, MutationPhase as r, whenIdle as s, Mutation as t, RenderStateOptions as u, Quality as v, LifecycleReason as w, Lifecycle as x, ReducedMotionBehavior as y };
275
- //# sourceMappingURL=index-BynP-ee0.d.ts.map
274
+ //#region src/core/pointer/index.d.ts
275
+ type PointerPhase = 'idle' | 'tracking' | 'stopped';
276
+ type PointerReason = 'initial' | 'enter' | 'leave' | 'sight' | 'disposed';
277
+ interface PointerState {
278
+ /** X position relative to the element's top-left, in CSS pixels. */
279
+ x: number;
280
+ /** Y position relative to the element's top-left, in CSS pixels. */
281
+ y: number;
282
+ /** Whether a pointer is currently over the element. */
283
+ active: boolean;
284
+ }
285
+ interface PointerOptions {
286
+ element: Element;
287
+ /** Called once per rAF frame with the latest pointer position. */
288
+ onPointer: (state: PointerState) => void;
289
+ /** Called on phase transitions (idle, tracking, stopped). */
290
+ onPhaseChange?: (phase: PointerPhase, reason: PointerReason) => void;
291
+ /** Pause when off-screen or ignore visibility. Default `'pause'`. */
292
+ visibility?: 'pause' | 'ignore';
293
+ /** IO options forwarded to the visibility observer. */
294
+ intersectionOptions?: IntersectionObserverInit;
295
+ /** Stops the tracker when aborted. */
296
+ signal?: AbortSignal;
297
+ }
298
+ interface Pointer {
299
+ readonly phase: PointerPhase;
300
+ readonly phaseReason: PointerReason;
301
+ readonly state: Readonly<PointerState>;
302
+ stop(): void;
303
+ }
304
+ /** Lifecycle-aware pointer tracker with rAF-batched `getBoundingClientRect`. */
305
+ declare function createPointer(options: PointerOptions): Pointer;
306
+ //#endregion
307
+ //#region src/core/scroll/index.d.ts
308
+ type ScrollPhase = 'tracking' | 'paused' | 'stopped';
309
+ type ScrollReason = 'initial' | 'started' | 'sight' | 'disposed';
310
+ interface ScrollState {
311
+ /** `scrollLeft`, clamped to `[0, maxX]`. */
312
+ x: number;
313
+ /** `scrollTop`, clamped to `[0, maxY]`. */
314
+ y: number;
315
+ /** Max horizontal scroll distance (`scrollWidth - clientWidth`, never negative). */
316
+ maxX: number;
317
+ /** Max vertical scroll distance (`scrollHeight - clientHeight`, never negative). */
318
+ maxY: number;
319
+ /** Horizontal scroll progress `x / maxX` (0–1). `0` when not scrollable. */
320
+ progressX: number;
321
+ /** Vertical scroll progress `y / maxY` (0–1). `0` when not scrollable. */
322
+ progressY: number;
323
+ /** Visible horizontal fraction `clientWidth / scrollWidth` (0–1). Thumb `scaleX`. */
324
+ visibleX: number;
325
+ /** Visible vertical fraction `clientHeight / scrollHeight` (0–1). Thumb `scaleY`. */
326
+ visibleY: number;
327
+ }
328
+ interface CreateScrollOptions {
329
+ element: Element;
330
+ /** Called once per rAF frame with the latest scroll position + progress. */
331
+ onScroll: (state: ScrollState) => void;
332
+ /** Called on phase transitions (tracking, paused, stopped). */
333
+ onPhaseChange?: (phase: ScrollPhase, reason: ScrollReason) => void;
334
+ /** Pause when off-screen or ignore visibility. Default `'pause'`. */
335
+ visibility?: 'pause' | 'ignore';
336
+ /** IO options forwarded to the visibility observer. */
337
+ intersectionOptions?: IntersectionObserverInit;
338
+ /** Stops the tracker when aborted. */
339
+ signal?: AbortSignal;
340
+ }
341
+ interface Scroll {
342
+ readonly phase: ScrollPhase;
343
+ readonly phaseReason: ScrollReason;
344
+ readonly state: Readonly<ScrollState>;
345
+ /** Re-read geometry (`scrollWidth`/`clientWidth`) after a content change. */
346
+ measure(): void;
347
+ stop(): void;
348
+ }
349
+ /**
350
+ * Lifecycle-aware scroll tracker. Reads `scrollLeft`/`scrollTop` once per rAF
351
+ * frame and reads the reflow-heavy geometry (`scrollWidth`/`clientWidth`) only
352
+ * on resize or explicit `measure()`, never on the scroll path. Auto-pauses when
353
+ * the element is off-screen.
354
+ *
355
+ * This is to `scroll` + `scrollWidth` what `createPointer` is to `pointermove`
356
+ * + `getBoundingClientRect`: the layout read is batched off the hot path so the
357
+ * per-scroll work is a single cheap position read plus math on cached geometry.
358
+ */
359
+ declare function createScroll(options: CreateScrollOptions): Scroll;
360
+ //#endregion
361
+ export { Quality as A, SightOptions as B, createRenderState as C, LoopOptions as D, Loop as E, LifecyclePhase as F, Ticker as G, SightReason as H, LifecycleReason as I, TickerReason as J, TickerOptions as K, LifecycleReducedMotion as L, createLoop as M, Lifecycle as N, LoopPhase as O, LifecycleOptions as P, createLifecycle as R, RenderStateOptions as S, DegradedReason as T, createSight as U, SightPhase as V, FrameState as W, createTicker as Y, createMutation as _, ScrollState as a, RenderPhase as b, PointerOptions as c, PointerState as d, createPointer as f, MutationReason as g, MutationPhase as h, ScrollReason as i, ReducedMotionBehavior as j, LoopReason as k, PointerPhase as l, MutationOptions as m, Scroll as n, createScroll as o, Mutation as p, TickerPhase as q, ScrollPhase as r, Pointer as s, CreateScrollOptions as t, PointerReason as u, IdleOptions as v, DegradedBehavior as w, RenderState as x, whenIdle as y, Sight as z };
362
+ //# sourceMappingURL=index-BRyL_Inx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BRyL_Inx.d.ts","names":[],"sources":["../src/core/tick/index.ts","../src/core/sight/index.ts","../src/core/lifecycle/index.ts","../src/core/loop/index.ts","../src/core/render-state/index.ts","../src/core/idle/index.ts","../src/core/mutation/index.ts","../src/core/pointer/index.ts","../src/core/scroll/index.ts"],"mappings":";UAOiB,UAAA;EAAA;EAEf,IAAA;;EAEA,KAAA;EAFA;EAIA,OAAA;EAAA;EAEA,KAAA;AAAA;AAAA,KAGU,WAAA;AAAA,KACA,YAAA;AAAA,UAOK,aAAA;;EAEf,GAAA;EAVqB;AACvB;;;EAcE,MAAA,GAAS,KAAA,EAAO,UAAA;EAdM;EAgBtB,MAAA,GAAS,WAAA;AAAA;AAAA,UAGM,MAAA;EACf,KAAA;EACA,IAAA;EACA,KAAA;EACA,MAAA;EAAA,SACS,KAAA,EAAO,WAAA;EAAA,SACP,WAAA,EAAa,YAAA;AAAA;;;AANxB;;;;;iBAgFgB,YAAA,CAAa,OAAA,EAAS,aAAA,GAAgB,MAAA;;;KC9G1C,UAAA;AAAA,KACA,WAAA;AAAA,UAOK,YAAA;EACf,OAAA,EAAS,OAAA;EACT,mBAAA,GAAsB,wBAAA;EACtB,aAAA,IAAiB,KAAA,EAAO,UAAA,EAAY,MAAA,EAAQ,WAAA;EDR5C;ECUA,MAAA,GAAS,WAAA;AAAA;AAAA,UAGM,KAAA;EAAA,SACN,KAAA,EAAO,UAAA;EAAA,SACP,WAAA,EAAa,WAAA;EACtB,IAAA;AAAA;;;ADRF;;;;;AAOA;;;;;;;;;;;iBC0BgB,WAAA,CAAY,OAAA,EAAS,YAAA,GAAe,KAAA;;;KCvCxC,cAAA;AAAA,KACA,eAAA;;KAUA,sBAAA;AAAA,UAEK,gBAAA;EACf,OAAA,EAAS,OAAA;EACT,aAAA,GAAgB,sBAAA;EAChB,mBAAA,GAAsB,wBAAA;EACtB,KAAA;EACA,aAAA,IAAiB,KAAA,EAAO,cAAA,EAAgB,MAAA,EAAQ,eAAA;EFhB3C;EEkBL,MAAA,GAAS,WAAA;AAAA;AAAA,UAGM,SAAA;EFlBM;EEoBrB,KAAA;EFnBU;EEqBV,IAAA;;EAEA,KAAA;EFvBsB;EEyBtB,MAAA;EAAA,SACS,KAAA,EAAO,cAAA;EAAA,SACP,WAAA,EAAa,eAAA;AAAA;;;;;;;;;AFRxB;;;;;;;;;;;iBEwCgB,eAAA,CAAgB,OAAA,EAAS,gBAAA,GAAmB,SAAA;;;KCpEhD,qBAAA;AAAA,KACA,gBAAA;AAAA,KAEA,SAAA;AAAA,KACA,UAAA;AAAA,KAUA,OAAA;AAAA,KACA,cAAA;AAAA,UAEF,eAAA;EACR,OAAA,EAAS,OAAA;EHbJ;;AAGP;;EGeE,MAAA,GAAS,KAAA,EAAO,UAAA;EAChB,GAAA;EACA,aAAA,GAAgB,qBAAA;EAChB,mBAAA,GAAsB,wBAAA;EACtB,KAAA;EACA,aAAA,IAAiB,KAAA,EAAO,SAAA,EAAW,MAAA,EAAQ,UAAA;EHnBrB;EGqBtB,MAAA,GAAS,WAAA;AAAA;AAAA,KAGN,eAAA;EACC,QAAA;EAAuB,WAAA;AAAA;EACvB,QAAA;AAAA;EACA,QAAA;AAAA;AAAA,KAEM,WAAA,GAAc,eAAA,GAAkB,eAAA;AAAA,UAE3B,IAAA;EACf,KAAA;EACA,IAAA;EAAA,SACS,KAAA,EAAO,SAAA;EAAA,SACP,WAAA,EAAa,UAAA;EAAA,SACb,OAAA,EAAS,OAAA;EAAA,SACT,aAAA,EAAe,cAAA;AAAA;;;;;;;;;AH8D1B;;;;;;;;;;;;AC9GA;iBE+FgB,UAAA,CAAW,OAAA,EAAS,WAAA,GAAc,IAAA;;;KChGtC,WAAA;AAAA,UAEK,kBAAA;EACf,OAAA,EAAS,OAAA;EACT,aAAA,IAAiB,KAAA,EAAO,WAAA;EJJC;EIMzB,MAAA,GAAS,WAAA;AAAA;AAAA,UAGM,WAAA;EJDf;EAAA,SIGS,KAAA,EAAO,WAAA;EAChB,IAAA;AAAA;;;;;AJAF;;;;;AAOA;;;;;;;;;;;;AAYA;;;;;;iBIegB,iBAAA,CAAkB,OAAA,EAAS,kBAAA,GAAqB,WAAA;;;UC9C/C,WAAA;ELAA;EKEf,OAAA;;EAEA,MAAA,GAAS,WAAA;AAAA;;;;;;ALOX;;;;;AACA;iBKiBgB,QAAA,CACd,QAAA,cACA,OAAA,GAAU,WAAA;;;KC9BA,aAAA;AAAA,KACA,cAAA;AAAA,UAEK,eAAA;EACf,OAAA,EAAS,OAAA;ENLgB;EMOzB,QAAA,EAAU,oBAAA;ENHV;EMKA,WAAA,GAAc,OAAA,EAAS,cAAA;ENDvB;EMGA,aAAA,IAAiB,KAAA,EAAO,aAAA,EAAe,MAAA,EAAQ,cAAA;ENH1C;EMKL,UAAA;ENFqB;EMIrB,mBAAA,GAAsB,wBAAA;ENJD;EMMrB,MAAA,GAAS,WAAA;AAAA;AAAA,UAGM,QAAA;EAAA,SACN,KAAA,EAAO,aAAA;EAAA,SACP,WAAA,EAAa,cAAA;EACtB,IAAA;AAAA;;iBAQc,cAAA,CAAe,OAAA,EAAS,eAAA,GAAkB,QAAA;;;KC9B9C,YAAA;AAAA,KACA,aAAA;AAAA,UAOK,YAAA;;EAEf,CAAA;EPTA;EOWA,CAAA;EPPA;EOSA,MAAA;AAAA;AAAA,UAGe,cAAA;EACf,OAAA,EAAS,OAAA;EPRY;EOUrB,SAAA,GAAY,KAAA,EAAO,YAAA;EPVE;EOYrB,aAAA,IAAiB,KAAA,EAAO,YAAA,EAAc,MAAA,EAAQ,aAAA;EPXpC;EOaV,UAAA;;EAEA,mBAAA,GAAsB,wBAAA;EPfA;EOiBtB,MAAA,GAAS,WAAA;AAAA;AAAA,UAGM,OAAA;EAAA,SACN,KAAA,EAAO,YAAA;EAAA,SACP,WAAA,EAAa,aAAA;EAAA,SACb,KAAA,EAAO,QAAA,CAAS,YAAA;EACzB,IAAA;AAAA;;iBAQc,aAAA,CAAc,OAAA,EAAS,cAAA,GAAiB,OAAA;;;KC1C5C,WAAA;AAAA,KACA,YAAA;AAAA,UAEK,WAAA;;EAEf,CAAA;ERLA;EQOA,CAAA;ERHA;EQKA,IAAA;ERHK;EQKL,IAAA;ERFU;EQIV,SAAA;;EAEA,SAAA;ERNqB;EQQrB,QAAA;ERPsB;EQStB,QAAA;AAAA;AAAA,UAIe,mBAAA;EACf,OAAA,EAAS,OAAA;ERPmB;EQS5B,QAAA,GAAW,KAAA,EAAO,WAAA;ERAE;EQEpB,aAAA,IAAiB,KAAA,EAAO,WAAA,EAAa,MAAA,EAAQ,YAAA;ERJ7C;EQMA,UAAA;ERNS;EQQT,mBAAA,GAAsB,wBAAA;ERNb;EQQT,MAAA,GAAS,WAAA;AAAA;AAAA,UAGM,MAAA;EAAA,SACN,KAAA,EAAO,WAAA;EAAA,SACP,WAAA,EAAa,YAAA;EAAA,SACb,KAAA,EAAO,QAAA,CAAS,WAAA;ERVzB;EQYA,OAAA;EACA,IAAA;AAAA;;;;;;;ARkEF;;;;iBQjDgB,YAAA,CAAa,OAAA,EAAS,mBAAA,GAAsB,MAAA"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { RemapOptions, clamp, clamp01, easeInOutCubic, easeOutBack, easeOutCubic, easeOutQuart, inverseLerp, lerp, linear, remap } from "./ease.js";
2
- import { A as SightReason, C as LifecyclePhase, D as Sight, E as createLifecycle, F as TickerPhase, I as TickerReason, L as createTicker, M as FrameState, N as Ticker, O as SightOptions, P as TickerOptions, S as LifecycleOptions, T as LifecycleReducedMotion, _ as LoopReason, a as createMutation, b as createLoop, c as RenderPhase, d as createRenderState, f as DegradedBehavior, g as LoopPhase, h as LoopOptions, i as MutationReason, j as createSight, k as SightPhase, l as RenderState, m as Loop, n as MutationOptions, o as IdleOptions, p as DegradedReason, r as MutationPhase, s as whenIdle, t as Mutation, u as RenderStateOptions, v as Quality, w as LifecycleReason, x as Lifecycle, y as ReducedMotionBehavior } from "./index-BynP-ee0.js";
2
+ import { A as Quality, B as SightOptions, C as createRenderState, D as LoopOptions, E as Loop, F as LifecyclePhase, G as Ticker, H as SightReason, I as LifecycleReason, J as TickerReason, K as TickerOptions, L as LifecycleReducedMotion, M as createLoop, N as Lifecycle, O as LoopPhase, P as LifecycleOptions, R as createLifecycle, S as RenderStateOptions, T as DegradedReason, U as createSight, V as SightPhase, W as FrameState, Y as createTicker, _ as createMutation, a as ScrollState, b as RenderPhase, c as PointerOptions, d as PointerState, f as createPointer, g as MutationReason, h as MutationPhase, i as ScrollReason, j as ReducedMotionBehavior, k as LoopReason, l as PointerPhase, m as MutationOptions, n as Scroll, o as createScroll, p as Mutation, q as TickerPhase, r as ScrollPhase, s as Pointer, t as CreateScrollOptions, u as PointerReason, v as IdleOptions, w as DegradedBehavior, x as RenderState, y as whenIdle, z as Sight } from "./index-BRyL_Inx.js";
3
3
 
4
4
  //#region src/core/scroll-progress/index.d.ts
5
5
  interface ScrollProgressOptions {
@@ -95,5 +95,5 @@ declare class PhaseError extends Error {
95
95
  /** Check if a value is a PhaseError instance. */
96
96
  declare function isPhaseError(error: unknown): error is PhaseError;
97
97
  //#endregion
98
- export { type DegradedBehavior, type DegradedReason, type DevicePixelRatio, type DevicePixelRatioOptions, type FrameState, type IdleOptions, type Lifecycle, type LifecycleOptions, type LifecyclePhase, type LifecycleReason, type LifecycleReducedMotion, type Loop, type LoopOptions, type LoopPhase, type LoopReason, type Mutation, type MutationOptions, type MutationPhase, type MutationReason, PhaseError, type PhaseErrorCode, type Quality, type ReducedMotionBehavior, type RemapOptions, type RenderPhase, type RenderState, type RenderStateOptions, type ScrollProgress, type ScrollProgressOptions, type Sight, type SightOptions, type SightPhase, type SightReason, type Ticker, type TickerOptions, type TickerPhase, type TickerReason, clamp, clamp01, createDevicePixelRatio, createLifecycle, createLoop, createMutation, createRenderState, createScrollProgress, createSight, createTicker, easeInOutCubic, easeOutBack, easeOutCubic, easeOutQuart, inverseLerp, isPhaseError, lerp, linear, prefersReducedMotion, remap, whenIdle };
98
+ export { type CreateScrollOptions, type DegradedBehavior, type DegradedReason, type DevicePixelRatio, type DevicePixelRatioOptions, type FrameState, type IdleOptions, type Lifecycle, type LifecycleOptions, type LifecyclePhase, type LifecycleReason, type LifecycleReducedMotion, type Loop, type LoopOptions, type LoopPhase, type LoopReason, type Mutation, type MutationOptions, type MutationPhase, type MutationReason, PhaseError, type PhaseErrorCode, type Pointer, type PointerOptions, type PointerPhase, type PointerReason, type PointerState, type Quality, type ReducedMotionBehavior, type RemapOptions, type RenderPhase, type RenderState, type RenderStateOptions, type Scroll, type ScrollPhase, type ScrollProgress, type ScrollProgressOptions, type ScrollReason, type ScrollState, type Sight, type SightOptions, type SightPhase, type SightReason, type Ticker, type TickerOptions, type TickerPhase, type TickerReason, clamp, clamp01, createDevicePixelRatio, createLifecycle, createLoop, createMutation, createPointer, createRenderState, createScroll, createScrollProgress, createSight, createTicker, easeInOutCubic, easeOutBack, easeOutCubic, easeOutQuart, inverseLerp, isPhaseError, lerp, linear, prefersReducedMotion, remap, whenIdle };
99
99
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { clamp, clamp01, easeInOutCubic, easeOutBack, easeOutCubic, easeOutQuart, inverseLerp, lerp, linear, remap } from "./ease.js";
2
- import { _ as isPhaseError, a as readDpr, b as linkAbortSignal, c as createScrollProgress, h as PhaseError, i as whenIdle, l as createLoop, m as createTicker, o as subscribeDpr, p as createSight, r as prefersReducedMotion, s as createRenderState, t as createMutation, u as createLifecycle, y as serverContextError } from "./mutation-BDx6r5D3.js";
2
+ import { C as linkAbortSignal, S as serverContextError, _ as createTicker, b as isPhaseError, c as readDpr, d as createScrollProgress, f as createLoop, g as createSight, i as createMutation, l as subscribeDpr, o as prefersReducedMotion, p as createLifecycle, r as createPointer, s as whenIdle, t as createScroll, u as createRenderState, v as PhaseError } from "./scroll-DZvWyPQE.js";
3
3
  //#region src/core/device-pixel-ratio/index.ts
4
4
  /**
5
5
  * Track devicePixelRatio changes (e.g. user drags the window between monitors
@@ -42,6 +42,6 @@ function createDevicePixelRatio(options) {
42
42
  };
43
43
  }
44
44
  //#endregion
45
- export { PhaseError, clamp, clamp01, createDevicePixelRatio, createLifecycle, createLoop, createMutation, createRenderState, createScrollProgress, createSight, createTicker, easeInOutCubic, easeOutBack, easeOutCubic, easeOutQuart, inverseLerp, isPhaseError, lerp, linear, prefersReducedMotion, remap, whenIdle };
45
+ export { PhaseError, clamp, clamp01, createDevicePixelRatio, createLifecycle, createLoop, createMutation, createPointer, createRenderState, createScroll, createScrollProgress, createSight, createTicker, easeInOutCubic, easeOutBack, easeOutCubic, easeOutQuart, inverseLerp, isPhaseError, lerp, linear, prefersReducedMotion, remap, whenIdle };
46
46
 
47
47
  //# sourceMappingURL=index.js.map
package/dist/react.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as SightReason, C as LifecyclePhase, M as FrameState, T as LifecycleReducedMotion, _ as LoopReason, c as RenderPhase, f as DegradedBehavior, g as LoopPhase, i as MutationReason, k as SightPhase, o as IdleOptions, p as DegradedReason, r as MutationPhase, v as Quality, w as LifecycleReason, y as ReducedMotionBehavior } from "./index-BynP-ee0.js";
1
+ import { A as Quality, F as LifecyclePhase, H as SightReason, I as LifecycleReason, L as LifecycleReducedMotion, O as LoopPhase, T as DegradedReason, V as SightPhase, W as FrameState, a as ScrollState, b as RenderPhase, d as PointerState, g as MutationReason, h as MutationPhase, i as ScrollReason, j as ReducedMotionBehavior, k as LoopReason, l as PointerPhase, r as ScrollPhase, u as PointerReason, v as IdleOptions, w as DegradedBehavior } from "./index-BRyL_Inx.js";
2
2
  import { ComponentProps, ElementType, HTMLAttributes, JSX, ReactNode, Ref, RefObject } from "react";
3
3
 
4
4
  //#region src/react/use-synced-ref/index.d.ts
@@ -451,7 +451,6 @@ declare function useCanvas(options: UseCanvasOptions): UseCanvasResult;
451
451
  //#endregion
452
452
  //#region src/react/use-mutation/index.d.ts
453
453
  type MutationRecordsCallback = (records: MutationRecord[]) => void;
454
- type MutationPhaseCallback = (phase: MutationPhase, phaseReason: MutationReason) => void;
455
454
  interface UseMutationOptions<T extends Element = HTMLDivElement> {
456
455
  /**
457
456
  * Element to observe. When omitted, attach the returned `ref`.
@@ -465,11 +464,6 @@ interface UseMutationOptions<T extends Element = HTMLDivElement> {
465
464
  mutation: MutationObserverInit;
466
465
  /** Called once per rAF frame with coalesced records. Never per-record. */
467
466
  onMutations: MutationRecordsCallback;
468
- /**
469
- * Called on every phase transition. When provided, `phase` and `phaseReason`
470
- * stay at initial values and no re-renders occur (transient mode).
471
- */
472
- onPhaseChange?: MutationPhaseCallback;
473
467
  /** Pause when off-screen or ignore visibility. Default `'pause'`. */
474
468
  visibility?: 'pause' | 'ignore';
475
469
  /** When `false`, tears down the observer entirely. Default `true`. */
@@ -477,7 +471,7 @@ interface UseMutationOptions<T extends Element = HTMLDivElement> {
477
471
  /** IO options forwarded to the visibility observer. */
478
472
  intersectionOptions?: IntersectionObserverInit;
479
473
  }
480
- interface UseMutationReactiveResult<T extends Element = HTMLDivElement> {
474
+ interface UseMutationResult<T extends Element = HTMLDivElement> {
481
475
  ref: RefObject<T | null>;
482
476
  phase: MutationPhase;
483
477
  phaseReason: MutationReason;
@@ -486,25 +480,94 @@ interface UseMutationReactiveResult<T extends Element = HTMLDivElement> {
486
480
  /** Reason via ref. Always current, never triggers re-render. */
487
481
  phaseReasonRef: RefObject<MutationReason>;
488
482
  }
489
- interface UseMutationTransientResult<T extends Element = HTMLDivElement> {
483
+ /**
484
+ * Lifecycle-aware MutationObserver with rAF-coalesced callbacks.
485
+ * Auto-pauses off-screen and tears down on unmount.
486
+ *
487
+ * Records are always delivered imperatively via `onMutations` (never state).
488
+ * Phase transitions (observing/paused) are infrequent, so `phase`/`phaseReason`
489
+ * are reactive state; read `phaseRef`/`phaseReasonRef` for the latest value
490
+ * inside `onMutations` without closure staleness. For synchronous phase
491
+ * reactions, use the core `createMutation` primitive.
492
+ */
493
+ declare function useMutation<T extends Element = HTMLDivElement>(options: UseMutationOptions<T>): UseMutationResult<T>;
494
+ //#endregion
495
+ //#region src/react/use-pointer/index.d.ts
496
+ type PointerCallback = (state: PointerState) => void;
497
+ interface UsePointerOptions<T extends Element = HTMLDivElement> {
498
+ /** Element to track. When omitted, attach the returned `ref`. */
499
+ ref?: RefObject<T | null>;
500
+ /** Called once per rAF frame with the latest pointer position. */
501
+ onPointer: PointerCallback;
502
+ /** Pause when off-screen or ignore visibility. Default `'pause'`. */
503
+ visibility?: 'pause' | 'ignore';
504
+ /** When `false`, tears down the tracker entirely. Default `true`. */
505
+ enabled?: boolean;
506
+ /** IO options forwarded to the visibility observer. */
507
+ intersectionOptions?: IntersectionObserverInit;
508
+ }
509
+ interface UsePointerResult<T extends Element = HTMLDivElement> {
490
510
  ref: RefObject<T | null>;
511
+ phase: PointerPhase;
512
+ phaseReason: PointerReason;
491
513
  /** Phase via ref. Always current, never triggers re-render. */
492
- phaseRef: RefObject<MutationPhase>;
514
+ phaseRef: RefObject<PointerPhase>;
493
515
  /** Reason via ref. Always current, never triggers re-render. */
494
- phaseReasonRef: RefObject<MutationReason>;
516
+ phaseReasonRef: RefObject<PointerReason>;
517
+ /** Latest pointer position via ref. Always current, never triggers re-render. */
518
+ stateRef: RefObject<PointerState>;
495
519
  }
496
- type UseMutationResult<T extends Element = HTMLDivElement> = UseMutationReactiveResult<T>;
497
520
  /**
498
- * Lifecycle-aware MutationObserver with rAF-coalesced callbacks.
521
+ * Lifecycle-aware pointer tracker with rAF-batched `getBoundingClientRect`.
499
522
  * Auto-pauses off-screen and tears down on unmount.
500
523
  *
501
- * Pass `onPhaseChange` for zero-re-render mode (transient). Without it,
502
- * `phase` and `phaseReason` update via state on every transition.
524
+ * Position is always delivered imperatively via `onPointer` (never state) and
525
+ * mirrored in `stateRef` for on-demand reads (e.g. inside a `useLoop` tick).
526
+ * Phase transitions (tracking/idle) are infrequent, so `phase`/`phaseReason`
527
+ * are reactive state; read `phaseRef`/`phaseReasonRef` for the latest value
528
+ * without closure staleness. For synchronous phase reactions, use the core
529
+ * `createPointer` primitive.
530
+ */
531
+ declare function usePointer<T extends Element = HTMLDivElement>(options: UsePointerOptions<T>): UsePointerResult<T>;
532
+ //#endregion
533
+ //#region src/react/use-scroll/index.d.ts
534
+ type ScrollCallback = (state: ScrollState) => void;
535
+ interface UseScrollOptions<T extends Element = HTMLDivElement> {
536
+ /** Element to track. When omitted, attach the returned `ref`. */
537
+ ref?: RefObject<T | null>;
538
+ /** Called once per rAF frame with the latest scroll position + progress. */
539
+ onScroll: ScrollCallback;
540
+ /** Pause when off-screen or ignore visibility. Default `'pause'`. */
541
+ visibility?: 'pause' | 'ignore';
542
+ /** When `false`, tears down the tracker entirely. Default `true`. */
543
+ enabled?: boolean;
544
+ /** IO options forwarded to the visibility observer. */
545
+ intersectionOptions?: IntersectionObserverInit;
546
+ }
547
+ interface UseScrollResult<T extends Element = HTMLDivElement> {
548
+ ref: RefObject<T | null>;
549
+ phase: ScrollPhase;
550
+ phaseReason: ScrollReason;
551
+ /** Phase via ref. Always current, never triggers re-render. */
552
+ phaseRef: RefObject<ScrollPhase>;
553
+ /** Reason via ref. Always current, never triggers re-render. */
554
+ phaseReasonRef: RefObject<ScrollReason>;
555
+ /** Latest scroll state via ref. Always current, never triggers re-render. */
556
+ stateRef: RefObject<ScrollState>;
557
+ /** Re-read geometry after a content change (e.g. after navigation). */
558
+ measure: () => void;
559
+ }
560
+ /**
561
+ * Lifecycle-aware scroll tracker. Scroll position is delivered imperatively via
562
+ * `onScroll` (never state) and mirrored in `stateRef` for on-demand reads; only
563
+ * the phase (tracking/paused) is reactive, since it flips rarely. This mirrors
564
+ * `usePointer`. Auto-pauses off-screen and tears down on unmount.
565
+ *
566
+ * Reads `scrollLeft`/`scrollTop` once per rAF frame; the reflow-heavy geometry
567
+ * (`scrollWidth`/`clientWidth`) is read only on resize or via `measure()`, never
568
+ * on the scroll path. Call `measure()` after mutating scrollable content.
503
569
  */
504
- declare function useMutation<T extends Element = HTMLDivElement>(options: UseMutationOptions<T> & {
505
- onPhaseChange: MutationPhaseCallback;
506
- }): UseMutationTransientResult<T>;
507
- declare function useMutation<T extends Element = HTMLDivElement>(options: UseMutationOptions<T>): UseMutationReactiveResult<T>;
570
+ declare function useScroll<T extends Element = HTMLDivElement>(options: UseScrollOptions<T>): UseScrollResult<T>;
508
571
  //#endregion
509
572
  //#region src/react/use-tween/index.d.ts
510
573
  interface UseTweenOptions {
@@ -751,5 +814,5 @@ declare const Swap: typeof SwapRoot & {
751
814
  State: typeof SwapState;
752
815
  };
753
816
  //#endregion
754
- export { type CanvasDrawFn, type ContainerBreakpoint, Defer, type DeferProps, type IdleOptions, type LifecyclePhase, type LifecycleReason, type LifecycleReducedMotion, type LoopTickFn, type MutationPhaseCallback, type MutationRecordsCallback, Presence, type PresenceMode, type PresencePhase, type PresenceProps, type PresenceReason, type RenderPhase, type ScrollProgressCallback, type SightCallback, type Size, type SizeCallback, Swap, type SwapProps, type SwapStateProps, type UseCanvasOptions, type UseCanvasResult, type UseContainerQueryOptions, type UseContainerQueryResult, type UseLifecycleOptions, type UseLifecycleResult, type UseLoopOptions, type UseLoopResult, type UseMutationOptions, type UseMutationReactiveResult, type UseMutationResult, type UseMutationTransientResult, type UsePresenceOptions, type UsePresenceResult, type UseScrollProgressOptions, type UseScrollProgressReactiveResult, type UseScrollProgressResult, type UseScrollProgressTransientResult, type UseSightOptions, type UseSightReactiveResult, type UseSightResult, type UseSightTransientResult, type UseSizeOptions, type UseSizeReactiveResult, type UseSizeResult, type UseSizeTransientResult, type UseTweenOptions, WhenIdle, type WhenIdleProps, WhenVisible, type WhenVisibleProps, useCanvas, useContainerQuery, useDevicePixelRatio, useIdle, useLifecycle, useLoop, useMediaQuery, useMutation, usePrefersReducedMotion, usePresence, useRenderState, useScrollProgress, useSight, useSize, useStableCallback, useSyncedRef, useTween, useWhenIdle };
817
+ export { type CanvasDrawFn, type ContainerBreakpoint, Defer, type DeferProps, type IdleOptions, type LifecyclePhase, type LifecycleReason, type LifecycleReducedMotion, type LoopTickFn, type MutationRecordsCallback, type PointerCallback, Presence, type PresenceMode, type PresencePhase, type PresenceProps, type PresenceReason, type RenderPhase, type ScrollCallback, type ScrollProgressCallback, type SightCallback, type Size, type SizeCallback, Swap, type SwapProps, type SwapStateProps, type UseCanvasOptions, type UseCanvasResult, type UseContainerQueryOptions, type UseContainerQueryResult, type UseLifecycleOptions, type UseLifecycleResult, type UseLoopOptions, type UseLoopResult, type UseMutationOptions, type UseMutationResult, type UsePointerOptions, type UsePointerResult, type UsePresenceOptions, type UsePresenceResult, type UseScrollOptions, type UseScrollProgressOptions, type UseScrollProgressReactiveResult, type UseScrollProgressResult, type UseScrollProgressTransientResult, type UseScrollResult, type UseSightOptions, type UseSightReactiveResult, type UseSightResult, type UseSightTransientResult, type UseSizeOptions, type UseSizeReactiveResult, type UseSizeResult, type UseSizeTransientResult, type UseTweenOptions, WhenIdle, type WhenIdleProps, WhenVisible, type WhenVisibleProps, useCanvas, useContainerQuery, useDevicePixelRatio, useIdle, useLifecycle, useLoop, useMediaQuery, useMutation, usePointer, usePrefersReducedMotion, usePresence, useRenderState, useScroll, useScrollProgress, useSight, useSize, useStableCallback, useSyncedRef, useTween, useWhenIdle };
755
818
  //# sourceMappingURL=react.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","names":[],"sources":["../src/react/use-synced-ref/index.ts","../src/react/use-stable-callback/index.ts","../src/react/use-loop/index.ts","../src/react/use-lifecycle/index.ts","../src/react/use-device-pixel-ratio/index.ts","../src/react/use-media/index.ts","../src/react/use-reduced-motion/index.ts","../src/react/use-sight/index.ts","../src/react/use-size/index.ts","../src/react/use-container-query/index.ts","../src/react/use-scroll-progress/index.ts","../src/react/use-render-state/index.ts","../src/react/use-idle/index.ts","../src/react/use-when-idle/index.ts","../src/react/use-canvas/index.ts","../src/react/use-mutation/index.ts","../src/react/use-tween/index.ts","../src/react/use-presence/index.ts","../src/react/presence/index.tsx","../src/react/when-visible/index.tsx","../src/react/when-idle/index.tsx","../src/react/defer/index.tsx","../src/react/swap/index.tsx"],"mappings":"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"}
1
+ {"version":3,"file":"react.d.ts","names":[],"sources":["../src/react/use-synced-ref/index.ts","../src/react/use-stable-callback/index.ts","../src/react/use-loop/index.ts","../src/react/use-lifecycle/index.ts","../src/react/use-device-pixel-ratio/index.ts","../src/react/use-media/index.ts","../src/react/use-reduced-motion/index.ts","../src/react/use-sight/index.ts","../src/react/use-size/index.ts","../src/react/use-container-query/index.ts","../src/react/use-scroll-progress/index.ts","../src/react/use-render-state/index.ts","../src/react/use-idle/index.ts","../src/react/use-when-idle/index.ts","../src/react/use-canvas/index.ts","../src/react/use-mutation/index.ts","../src/react/use-pointer/index.ts","../src/react/use-scroll/index.ts","../src/react/use-tween/index.ts","../src/react/use-presence/index.ts","../src/react/presence/index.tsx","../src/react/when-visible/index.tsx","../src/react/when-idle/index.tsx","../src/react/defer/index.tsx","../src/react/swap/index.tsx"],"mappings":";;;;;;;AAYA;;;;;;;iBAAgB,YAAA,GAAA,CAAgB,KAAA,EAAO,CAAA,GAAI,SAAA,CAAU,CAAA;;;;;;;AAArD;;;;;iBCDgB,iBAAA,2BAAA,CACd,QAAA,MAAc,IAAA,EAAM,IAAA,KAAS,CAAA,OACxB,IAAA,EAAM,IAAA,KAAS,CAAA;;;;ADDtB;;;;KEQY,UAAA,IAAc,KAAA,EAAO,UAAA;AAAA,UAEhB,cAAA,WAAyB,OAAA,GAAU,cAAA;EFVA;;;;EEelD,GAAA,GAAM,SAAA,CAAU,CAAA;EFfyB;;;;EEoBzC,MAAA,EAAQ,UAAA;EACR,GAAA;EACA,OAAA;EACA,aAAA,GAAgB,qBAAA;EDxBe;EC0B/B,QAAA,GAAW,gBAAA;EDzBS;EC2BpB,WAAA;EACA,mBAAA,GAAsB,wBAAA;AAAA;AAAA,UAGP,aAAA,WAAwB,OAAA,GAAU,cAAA;ED9B5B;ECgCrB,GAAA,EAAK,SAAA,CAAU,CAAA;EACf,KAAA,EAAO,SAAA;EACP,WAAA,EAAa,UAAA;EACb,OAAA,EAAS,OAAA;EACT,aAAA,EAAe,cAAA;AAAA;;;;;;;;;AA7BjB;;;iBAuDgB,OAAA,WAAkB,OAAA,GAAU,cAAA,CAAA,CAC1C,OAAA,EAAS,cAAA,CAAe,CAAA,IACvB,aAAA,CAAc,CAAA;;;UClEA,mBAAA,WAA8B,OAAA,GAAU,cAAA;;AHCzD;;;EGIE,GAAA,GAAM,SAAA,CAAU,CAAA;EHJmC;EGMnD,aAAA,GAAgB,sBAAA;EHNkC;EGQlD,MAAA;EHR2B;EGU3B,OAAA;EACA,mBAAA,GAAsB,wBAAA;EHXmB;;;;;EGiBzC,aAAA,IAAiB,KAAA,EAAO,cAAA,EAAgB,MAAA,EAAQ,eAAA;AAAA;AAAA,UAGjC,kBAAA,WAA6B,OAAA,GAAU,cAAA;EFrBvB;EEuB/B,GAAA,EAAK,SAAA,CAAU,CAAA;EACf,KAAA,EAAO,cAAA;EACP,WAAA,EAAa,eAAA;EFvBF;EEyBX,QAAA;AAAA;;;;;;;;;;;;;;;;ADlBF;;;;iBC+CgB,YAAA,WAAuB,OAAA,GAAU,cAAA,CAAA,CAC/C,OAAA,GAAU,mBAAA,CAAoB,CAAA,IAC7B,kBAAA,CAAmB,CAAA;;;;;;;AHzDtB;;iBIFgB,mBAAA,CAAA;;;;;;;AJEhB;;;;;iBKIgB,aAAA,CAAc,KAAA;;;;;;;ALJ9B;;iBMHgB,uBAAA,CAAA;;;KCAJ,aAAA,IACV,KAAA,EAAO,UAAA,EACP,WAAA,EAAa,WAAA;AAAA,UAGE,eAAA,WACL,OAAA,GAAU,cAAA,UACZ,wBAAA;EPJM;;;EOQd,GAAA,GAAM,SAAA,CAAU,CAAA;EPRmC;EOUnD,OAAA;EPVkD;;;;EOelD,kBAAA,GAAqB,aAAA;AAAA;AAAA,UAGN,sBAAA,WAAiC,OAAA,GAAU,cAAA;EAC1D,GAAA,EAAK,SAAA,CAAU,CAAA;EACf,KAAA,EAAO,UAAA;EACP,WAAA,EAAa,WAAA;;EAEb,QAAA,EAAU,SAAA,CAAU,UAAA;ENxBN;EM0Bd,cAAA,EAAgB,SAAA,CAAU,WAAA;AAAA;AAAA,UAGX,uBAAA,WAAkC,OAAA,GAAU,cAAA;EAC3D,GAAA,EAAK,SAAA,CAAU,CAAA;EN5BJ;EM8BX,QAAA,EAAU,SAAA,CAAU,UAAA;EN9BC;EMgCrB,cAAA,EAAgB,SAAA,CAAU,WAAA;AAAA;;KAIhB,cAAA,WAAyB,OAAA,GAAU,cAAA,IAC7C,sBAAA,CAAuB,CAAA;;;;;;;;;;;;AL9BzB;;;;;iBKuDgB,QAAA,WAAmB,OAAA,GAAU,cAAA,CAAA,CAC3C,OAAA,EAAS,eAAA,CAAgB,CAAA;EAAO,kBAAA,EAAoB,aAAA;AAAA,IACnD,uBAAA,CAAwB,CAAA;AAAA,iBACX,QAAA,WAAmB,OAAA,GAAU,cAAA,CAAA,CAC3C,OAAA,GAAU,eAAA,CAAgB,CAAA,IACzB,sBAAA,CAAuB,CAAA;;;KC3Ed,YAAA,IAAgB,IAAA,EAAM,IAAA;AAAA,UAEjB,IAAA;EACf,KAAA;EACA,MAAA;AAAA;AAAA,UAGe,cAAA,WAAyB,OAAA,GAAU,cAAA;ERAb;;;EQIrC,GAAA,GAAM,SAAA,CAAU,CAAA;ERJkC;;;;;EQUlD,GAAA;ERVoD;;;;;EQgBpD,QAAA,GAAW,YAAA;AAAA;AAAA,UAGI,qBAAA,WAAgC,OAAA,GAAU,cAAA;EACzD,GAAA,EAAK,SAAA,CAAU,CAAA;EPpBc;EOsB7B,IAAA,EAAM,IAAA;EPrBc;EOuBpB,OAAA,EAAS,SAAA,CAAU,IAAA;AAAA;AAAA,UAGJ,sBAAA,WAAiC,OAAA,GAAU,cAAA;EAC1D,GAAA,EAAK,SAAA,CAAU,CAAA;EP5BD;EO8Bd,OAAA,EAAS,SAAA,CAAU,IAAA;AAAA;;KAIT,aAAA,WAAwB,OAAA,GAAU,cAAA,IAC5C,qBAAA,CAAsB,CAAA;;;;;;;;AN3BxB;;;;;AAEA;;iBMyCgB,OAAA,WAAkB,OAAA,GAAU,cAAA,CAAA,CAC1C,OAAA,EAAS,cAAA,CAAe,CAAA;EAAO,QAAA,EAAU,YAAA;AAAA,IACxC,sBAAA,CAAuB,CAAA;AAAA,iBACV,OAAA,WAAkB,OAAA,GAAU,cAAA,CAAA,CAC1C,OAAA,GAAU,cAAA,CAAe,CAAA,IACxB,qBAAA,CAAsB,CAAA;;;UC5DR,mBAAA;EACf,QAAA;EACA,QAAA;EACA,SAAA;EACA,SAAA;AAAA;AAAA,UAGe,wBAAA,WAAmC,OAAA,GAAU,cAAA;ETHT;;;ESOnD,GAAA,GAAM,SAAA,CAAU,CAAA;AAAA;AAAA,UAGD,uBAAA,WAAkC,OAAA,GAAU,cAAA;ETV7B;ESY9B,GAAA,EAAK,SAAA,CAAU,CAAA;ETZoC;EScnD,OAAA;AAAA;;;;ARfF;;;;;;;;iBQiCgB,iBAAA,WAA4B,OAAA,GAAU,cAAA,CAAA,CACpD,UAAA,EAAY,mBAAA,EACZ,OAAA,GAAU,wBAAA,CAAyB,CAAA,IAClC,uBAAA,CAAwB,CAAA;;;KCtCf,sBAAA,IAA0B,QAAA;AAAA,UAErB,wBAAA,WAAmC,OAAA,GAAU,cAAA;;AVC9D;;EUGE,GAAA,GAAM,SAAA,CAAU,CAAA;EVHqB;EUKrC,KAAA;EACA,IAAA,GAAO,OAAA;EACP,UAAA;EVPkD;;;;;EUalD,UAAA,GAAa,sBAAA;AAAA;AAAA,UAGE,+BAAA,WACL,OAAA,GAAU,cAAA;EAEpB,GAAA,EAAK,SAAA,CAAU,CAAA;;EAEf,QAAA;ETtBc;ESwBd,WAAA,EAAa,SAAA;AAAA;AAAA,UAGE,gCAAA,WACL,OAAA,GAAU,cAAA;EAEpB,GAAA,EAAK,SAAA,CAAU,CAAA;ET5BJ;ES8BX,WAAA,EAAa,SAAA;AAAA;;KAIH,uBAAA,WAAkC,OAAA,GAAU,cAAA,IACtD,+BAAA,CAAgC,CAAA;;;;;;;;;;;;;;AR5BlC;;;iBQkDgB,iBAAA,WAA4B,OAAA,GAAU,cAAA,CAAA,CACpD,OAAA,EAAS,wBAAA,CAAyB,CAAA;EAChC,UAAA,EAAY,sBAAA;AAAA,IAEb,gCAAA,CAAiC,CAAA;AAAA,iBACpB,iBAAA,WAA4B,OAAA,GAAU,cAAA,CAAA,CACpD,OAAA,GAAU,wBAAA,CAAyB,CAAA,IAClC,+BAAA,CAAgC,CAAA;;;;AVjEnC;;;;;;;;;;;;;;;;;iBWYgB,cAAA,WAAyB,OAAA,GAAU,cAAA,CAAA,CACjD,GAAA,EAAK,SAAA,CAAU,CAAA,WACd,WAAA;;;;;AXdH;;;;;;;;iBYIgB,OAAA,CAAQ,OAAA,GAAU,WAAA;;;;;AZJlC;;;;;;;;;;iBaOgB,WAAA,CAAY,QAAA,cAAsB,OAAA,GAAU,WAAA;;;UCI3C,MAAA;EACf,KAAA;EACA,MAAA;AAAA;;;;;;KAQU,YAAA,IACV,GAAA,EAAK,wBAAA,EACL,KAAA,EAAO,UAAA,EACP,IAAA,EAAM,MAAA;AAAA,UAGS,gBAAA;EACf,YAAA,EAAc,SAAA,CAAU,OAAA;EACxB,SAAA,EAAW,SAAA,CAAU,iBAAA;Ed7B8B;;;;EckCnD,IAAA,EAAM,YAAA;EACN,GAAA;EACA,OAAA;EACA,aAAA,GAAgB,qBAAA;EbtCe;EawC/B,QAAA,GAAW,gBAAA;EbvCkB;EayC7B,WAAA;AAAA;AAAA,UAGe,eAAA;EACf,OAAA;EACA,KAAA,EAAO,SAAA;EACP,WAAA,EAAa,UAAA;EACb,OAAA,EAAS,OAAA;EACT,aAAA,EAAe,cAAA;AAAA;;;;;;;;;;AZzCjB;;;;;iBYiEgB,SAAA,CAAU,OAAA,EAAS,gBAAA,GAAmB,eAAA;;;KCxE1C,uBAAA,IAA2B,OAAA,EAAS,cAAA;AAAA,UAE/B,kBAAA,WAA6B,OAAA,GAAU,cAAA;EfHxC;;;;EeQd,GAAA,GAAM,SAAA,CAAU,CAAA;EfRyB;;;;EeazC,QAAA,EAAU,oBAAA;EfboB;Eee9B,WAAA,EAAa,uBAAA;EffsC;EeiBnD,UAAA;EfjBoD;EemBpD,OAAA;;EAEA,mBAAA,GAAsB,wBAAA;AAAA;AAAA,UAGP,iBAAA,WAA4B,OAAA,GAAU,cAAA;EACrD,GAAA,EAAK,SAAA,CAAU,CAAA;EACf,KAAA,EAAO,aAAA;EACP,WAAA,EAAa,cAAA;Ed1BF;Ec4BX,QAAA,EAAU,SAAA,CAAU,aAAA;Ed5BC;Ec8BrB,cAAA,EAAgB,SAAA,CAAU,cAAA;AAAA;;;;;;;;;;;iBAwBZ,WAAA,WAAsB,OAAA,GAAU,cAAA,CAAA,CAC9C,OAAA,EAAS,kBAAA,CAAmB,CAAA,IAC3B,iBAAA,CAAkB,CAAA;;;KCvDT,eAAA,IAAmB,KAAA,EAAO,YAAA;AAAA,UAErB,iBAAA,WAA4B,OAAA,GAAU,cAAA;EhBJvC;EgBMd,GAAA,GAAM,SAAA,CAAU,CAAA;EhBNU;EgBQ1B,SAAA,EAAW,eAAA;EhBRwC;EgBUnD,UAAA;EhBVkD;EgBYlD,OAAA;EhBZ2B;EgBc3B,mBAAA,GAAsB,wBAAA;AAAA;AAAA,UAGP,gBAAA,WAA2B,OAAA,GAAU,cAAA;EACpD,GAAA,EAAK,SAAA,CAAU,CAAA;EACf,KAAA,EAAO,YAAA;EACP,WAAA,EAAa,aAAA;;EAEb,QAAA,EAAU,SAAA,CAAU,YAAA;;EAEpB,cAAA,EAAgB,SAAA,CAAU,aAAA;EfzBK;Ee2B/B,QAAA,EAAU,SAAA,CAAU,YAAA;AAAA;;;;;;;;;;;;iBAyBN,UAAA,WAAqB,OAAA,GAAU,cAAA,CAAA,CAC7C,OAAA,EAAS,iBAAA,CAAkB,CAAA,IAC1B,gBAAA,CAAiB,CAAA;;;KC5CR,cAAA,IAAkB,KAAA,EAAO,WAAA;AAAA,UAEpB,gBAAA,WAA2B,OAAA,GAAU,cAAA;EjBXtC;EiBad,GAAA,GAAM,SAAA,CAAU,CAAA;EjBbU;EiBe1B,QAAA,EAAU,cAAA;EjBfyC;EiBiBnD,UAAA;EjBjBkD;EiBmBlD,OAAA;EjBnB2B;EiBqB3B,mBAAA,GAAsB,wBAAA;AAAA;AAAA,UAGP,eAAA,WAA0B,OAAA,GAAU,cAAA;EACnD,GAAA,EAAK,SAAA,CAAU,CAAA;EACf,KAAA,EAAO,WAAA;EACP,WAAA,EAAa,YAAA;;EAEb,QAAA,EAAU,SAAA,CAAU,WAAA;;EAEpB,cAAA,EAAgB,SAAA,CAAU,YAAA;EhBhCK;EgBkC/B,QAAA,EAAU,SAAA,CAAU,WAAA;EhBjCA;EgBmCpB,OAAA;AAAA;;;;;;;;;;;iBAqCc,SAAA,WAAoB,OAAA,GAAU,cAAA,CAAA,CAC5C,OAAA,EAAS,gBAAA,CAAiB,CAAA,IACzB,eAAA,CAAgB,CAAA;;;UC/EF,eAAA;EACf,MAAA;EACA,QAAA;EACA,KAAA;EACA,MAAA,IAAU,QAAA;EACV,OAAA;ElBAqC;EkBErC,aAAA,GAAgB,qBAAA;AAAA;;;;;;;;;;;;;AjBHlB;;;;iBiBsBgB,QAAA,CAAS,OAAA,EAAS,eAAA;;;KClBtB,aAAA;AAAA,KAEA,cAAA;AAAA,KAOA,YAAA;AAAA,UAEK,kBAAA;EACf,IAAA;EACA,IAAA,GAAO,YAAA;EnBhB8B;EmBkBrC,KAAA;EnBlByC;EmBoBzC,YAAA;EnBpBkD;EmBsBlD,aAAA;AAAA;AAAA,UAGe,iBAAA;EACf,KAAA,EAAO,aAAA;EACP,WAAA,EAAa,cAAA;EnB3BuC;EmB6BpD,OAAA;EACA,GAAA,EAAK,SAAA,CAAU,OAAA;;EAEf,KAAA;AAAA;;;;;;;;;;;;;;;;iBAsBc,WAAA,CAAY,OAAA,EAAS,kBAAA,GAAqB,iBAAA;;;UCzDzC,aAAA,SAAsB,cAAA;EACrC,IAAA;EACA,IAAA,GAAO,YAAA;EpBCmB;EoBC1B,KAAA;EpBDqC;EoBGrC,YAAA;EpBHyC;EoBKzC,aAAA;EACA,GAAA,GAAM,GAAA,CAAI,cAAA;AAAA;;;;;;;;;;AnBPZ;;;;;iBmBwBgB,QAAA,CAAA;EACd,IAAA;EACA,IAAA;EACA,KAAA,EAAO,WAAA;EACP,YAAA;EACA,aAAA;EACA,GAAA,EAAK,YAAA;EACL,QAAA;EAAA,GACG;AAAA,GACF,aAAA,GAAgB,GAAA,CAAI,OAAA;;;UC7BN,gBAAA,SAAyB,cAAA;;EAExC,UAAA;ErBLc;EqBOd,SAAA;ErBP0B;EqBS1B,IAAA,GAAO,OAAA;ErBT4C;EqBWnD,QAAA,GAAW,SAAA;ErBXuC;EqBalD,GAAA,GAAM,GAAA,CAAI,cAAA;AAAA;;;;;;;;;;ApBdZ;;;;iBoBkCgB,WAAA,CAAA;EACd,UAAA;EACA,SAAA;EACA,IAAA;EACA,QAAA;EACA,QAAA;EACA,GAAA,EAAK,YAAA;EAAA,GACF;AAAA,GACF,gBAAA,GAAmB,GAAA,CAAI,OAAA;;;UC5CT,aAAA,SAAsB,cAAA;;EAErC,OAAA;EtBCc;EsBCd,QAAA,GAAW,SAAA;EACX,GAAA,GAAM,GAAA,CAAI,cAAA;AAAA;;;;;;;;;;;;;;;ArBHZ;;;iBqB2BgB,QAAA,CAAA;EACd,OAAA;EACA,QAAA;EACA,QAAA;EACA,GAAA,EAAK,YAAA;EAAA,GACF;AAAA,GACF,aAAA,GAAgB,GAAA,CAAI,OAAA;;;UC9BN,UAAA,SAAmB,IAAA,CAAK,cAAA,CAAe,WAAA;;;AvBFxD;;EuBOE,EAAA,GAAK,WAAA;EvBPgC;;;;EuBYrC,eAAA;EACA,QAAA,GAAW,SAAA;EACX,GAAA,GAAM,GAAA,CAAI,WAAA;AAAA;;;;;;iBAYI,KAAA,CAAA;EACd,EAAA,EAAI,SAAA;EACJ,eAAA;EACA,QAAA;EACA,GAAA;EAAA,GACG;AAAA,GACF,UAAA,GAAa,GAAA,CAAI,OAAA;;;UCPH,SAAA,SAAkB,cAAA;EACjC,MAAA;EACA,YAAA;EACA,QAAA,EAAU,SAAA;AAAA;;;;;;;;;;;;;;;;;AvB7BZ;iBuBiDS,QAAA,CAAA;EACP,MAAA;EACA,YAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,SAAA,GAAY,GAAA,CAAI,OAAA;AAAA,UA+BF,cAAA,SAAuB,cAAA;EACtC,EAAA;EACA,GAAA,GAAM,GAAA,CAAI,cAAA;AAAA;AAAA,iBAGH,SAAA,CAAA;EACP,EAAA;EACA,GAAA,EAAK,YAAA;EACL,QAAA;EAAA,GACG;AAAA,GACF,cAAA,GAAiB,GAAA,CAAI,OAAA;AAAA,cAwCX,IAAA,SAAa,QAAA;EAAa,KAAA,SAAc,SAAA;AAAA"}