@wardic/dom 1.0.0-rc.4 → 1.0.0-rc.6
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/DomProbe.d.ts +3 -3
- package/dist/DomProbe.js +3 -3
- package/dist/DomScrollSource.d.ts +14 -0
- package/dist/DomScrollSource.d.ts.map +1 -0
- package/dist/DomScrollSource.js +15 -0
- package/dist/DomScrollSource.js.map +1 -0
- package/dist/FlushGate.js +1 -1
- package/dist/FlushGate.js.map +1 -1
- package/dist/ScrollOffset.d.ts +1 -1
- package/dist/ScrollOffset.js +1 -1
- package/dist/index.d.ts +14 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/content-watch.js +1 -1
- package/dist/internal/gate.d.ts +2 -1
- package/dist/internal/gate.d.ts.map +1 -1
- package/dist/internal/gate.js +2 -1
- package/dist/internal/gate.js.map +1 -1
- package/dist/internal/probe.d.ts +1 -1
- package/dist/internal/probe.d.ts.map +1 -1
- package/dist/internal/probe.js +2 -4
- package/dist/internal/probe.js.map +1 -1
- package/dist/internal/projection.d.ts +1 -1
- package/dist/internal/projection.d.ts.map +1 -1
- package/dist/internal/projection.js +1 -1
- package/dist/internal/projection.js.map +1 -1
- package/dist/internal/scroll.d.ts +14 -12
- package/dist/internal/scroll.d.ts.map +1 -1
- package/dist/internal/scroll.js +45 -10
- package/dist/internal/scroll.js.map +1 -1
- package/package.json +3 -3
- package/src/DomProbe.ts +3 -3
- package/src/DomScrollSource.ts +14 -0
- package/src/FlushGate.ts +1 -1
- package/src/ScrollOffset.ts +1 -1
- package/src/index.ts +18 -6
- package/src/internal/content-watch.ts +1 -1
- package/src/internal/gate.ts +2 -1
- package/src/internal/probe.ts +2 -4
- package/src/internal/projection.ts +1 -1
- package/src/internal/scroll.ts +29 -27
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `
|
|
3
|
-
* Atom, set inside the container's `scroll` event, the window's
|
|
4
|
-
* container or its content (#239), so a value derived from a scroll is
|
|
5
|
-
* shows it (#45's pattern for `viewport`).
|
|
2
|
+
* `ScrollSource` for the DOM (#234, ADR-0043 *Amendment (#233, #234)*; the Probe's `scroll` until
|
|
3
|
+
* #518): a container's scroll as an Atom, set inside the container's `scroll` event, the window's
|
|
4
|
+
* `resize`, and a resize of the container or its content (#239), so a value derived from a scroll is
|
|
5
|
+
* written in the frame that shows it (#45's pattern for `viewport`).
|
|
6
6
|
*
|
|
7
7
|
* One listener set a container, however many read it: a reader adds its own measure to the
|
|
8
8
|
* container's set and takes it out when its Scope closes, and the last one out removes the
|
|
9
|
-
* listeners
|
|
10
|
-
*
|
|
9
|
+
* listeners: core's `SharedSource.counted`, not a shared Stream, so a reader sets its Atom inside the
|
|
10
|
+
* event, where a Stream's consumer would set it after.
|
|
11
11
|
*
|
|
12
12
|
* A reader with a `target` or an `offset` reads its progress on `axis` through Motion's offsets
|
|
13
13
|
* (`ScrollOffset`, the DOM's syntax; `render/dom/scroll/offsets` in framer-motion 13.4.0, ported):
|
|
@@ -26,10 +26,12 @@
|
|
|
26
26
|
*
|
|
27
27
|
* Observability: per event, so quiet (no span, no log).
|
|
28
28
|
*/
|
|
29
|
-
import
|
|
30
|
-
import * as
|
|
31
|
-
import
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
import * as ScrollSource from "@wardic/core/ScrollSource";
|
|
30
|
+
import * as Layer from "effect/Layer";
|
|
31
|
+
import * as AtomRegistry from "effect/reactivity/AtomRegistry";
|
|
32
|
+
/**
|
|
33
|
+
* The DOM's `ScrollSource`, over the Environment's `AtomRegistry`. Marked pure, so an app that never
|
|
34
|
+
* builds it, with no `scroll` Feature, ships none of this module (#518).
|
|
35
|
+
*/
|
|
36
|
+
export declare const layer: Layer.Layer<ScrollSource.ScrollSource, never, AtomRegistry.AtomRegistry>;
|
|
35
37
|
//# sourceMappingURL=scroll.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../src/internal/scroll.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../src/internal/scroll.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,YAAY,MAAM,2BAA2B,CAAA;AAMzD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAMrC,OAAO,KAAK,YAAY,MAAM,gCAAgC,CAAA;AAkT9D;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,YAAY,CAO1F,CAAA"}
|
package/dist/internal/scroll.js
CHANGED
|
@@ -1,14 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ScrollSource` for the DOM (#234, ADR-0043 *Amendment (#233, #234)*; the Probe's `scroll` until
|
|
3
|
+
* #518): a container's scroll as an Atom, set inside the container's `scroll` event, the window's
|
|
4
|
+
* `resize`, and a resize of the container or its content (#239), so a value derived from a scroll is
|
|
5
|
+
* written in the frame that shows it (#45's pattern for `viewport`).
|
|
6
|
+
*
|
|
7
|
+
* One listener set a container, however many read it: a reader adds its own measure to the
|
|
8
|
+
* container's set and takes it out when its Scope closes, and the last one out removes the
|
|
9
|
+
* listeners: core's `SharedSource.counted`, not a shared Stream, so a reader sets its Atom inside the
|
|
10
|
+
* event, where a Stream's consumer would set it after.
|
|
11
|
+
*
|
|
12
|
+
* A reader with a `target` or an `offset` reads its progress on `axis` through Motion's offsets
|
|
13
|
+
* (`ScrollOffset`, the DOM's syntax; `render/dom/scroll/offsets` in framer-motion 13.4.0, ported):
|
|
14
|
+
* each stop resolves to a scroll
|
|
15
|
+
* position, the target's edge (in the target's length, from where it sits in the container) less
|
|
16
|
+
* the container's edge (in the container's), and progress runs piecewise between them, clamped.
|
|
17
|
+
*
|
|
18
|
+
* **The content's size** (#239, ADR-0043 *Amendment (#239)*): content that grows or shrinks with the
|
|
19
|
+
* scroll still changes the range and a target's offsets, and fires no `scroll`. One `ResizeObserver`
|
|
20
|
+
* a container watches its own box and its direct children (the page: the body and its children),
|
|
21
|
+
* a `MutationObserver` keeping the children watched as they're added and removed, and each reader's
|
|
22
|
+
* target. A deep change resizes the direct child it sits in. Nothing runs while nothing changes; a
|
|
23
|
+
* change is read after its layout, so what it moves paints a frame later. Overflow no watched box
|
|
24
|
+
* shows (an absolutely positioned descendant hanging out) isn't seen: Motion's `trackContentSize`
|
|
25
|
+
* reads the size every frame instead, opt-in.
|
|
26
|
+
*
|
|
27
|
+
* Observability: per event, so quiet (no span, no log).
|
|
28
|
+
*/
|
|
29
|
+
import * as ScrollSource from "@wardic/core/ScrollSource";
|
|
30
|
+
import * as SharedSource from "@wardic/core/SharedSource";
|
|
1
31
|
import * as Arr from "effect/Array";
|
|
2
32
|
import * as Bool from "effect/Boolean";
|
|
3
33
|
import * as Effect from "effect/Effect";
|
|
4
|
-
import * as Equal from "effect/Equal";
|
|
5
34
|
import * as Iter from "effect/Iterable";
|
|
35
|
+
import * as Layer from "effect/Layer";
|
|
6
36
|
import * as Match from "effect/Match";
|
|
7
37
|
import * as Option from "effect/Option";
|
|
8
38
|
import * as Order from "effect/Order";
|
|
9
39
|
import * as Predicate from "effect/Predicate";
|
|
10
|
-
import * as
|
|
11
|
-
import
|
|
40
|
+
import * as Atom from "effect/reactivity/Atom";
|
|
41
|
+
import * as AtomRegistry from "effect/reactivity/AtomRegistry";
|
|
12
42
|
import * as Rec from "effect/Record";
|
|
13
43
|
import * as Str from "effect/String";
|
|
14
44
|
import * as UndefinedOr from "effect/UndefinedOr";
|
|
@@ -170,12 +200,6 @@ const sameScroll = (a, b) => Arr.every([
|
|
|
170
200
|
], Boolean);
|
|
171
201
|
/** The page's scroller: `document.scrollingElement`, else the root element. */
|
|
172
202
|
const pageOf = () => Option.getOrElse(Option.fromNullOr(document.scrollingElement), () => document.documentElement);
|
|
173
|
-
/** The DOM's `Probe.scroll`, its Atoms set through `registry`: its containers held in the current Scope. */
|
|
174
|
-
export const makeScroll = (registry) => Effect.map(
|
|
175
|
-
// Each container's listeners while a reader holds them, the last one out removing them (#618, M7:
|
|
176
|
-
// Effect's `RcMap` where a count was kept by hand). An element is keyed by reference: Effect's
|
|
177
|
-
// structural `Hash` would walk a DOM node.
|
|
178
|
-
RcMap.make({ lookup: (element) => Effect.acquireRelease(Effect.sync(() => open(element)), (container) => Effect.sync(container.remove)) }), (containers) => readerOf(registry, containers));
|
|
179
203
|
/** A container's listener set, opened for its first reader. */
|
|
180
204
|
const open = (element) => {
|
|
181
205
|
const readers = new Set();
|
|
@@ -217,7 +241,7 @@ const open = (element) => {
|
|
|
217
241
|
/** A reader of a container's scroll: the container's listeners held from `containers` while its Scope is open. */
|
|
218
242
|
const readerOf = (registry, containers) => Effect.fnUntraced(function* (options = {}) {
|
|
219
243
|
const element = UndefinedOr.match(options.container, { onUndefined: pageOf, onDefined: (given) => given });
|
|
220
|
-
const container = yield*
|
|
244
|
+
const container = yield* containers(element);
|
|
221
245
|
const measure = measureOf(element, options);
|
|
222
246
|
let last = measure();
|
|
223
247
|
// Mounted while read, not kept alive: a kept-alive Atom's node never leaves the registry.
|
|
@@ -241,4 +265,15 @@ const readerOf = (registry, containers) => Effect.fnUntraced(function* (options
|
|
|
241
265
|
});
|
|
242
266
|
return atom;
|
|
243
267
|
});
|
|
268
|
+
/**
|
|
269
|
+
* The DOM's `ScrollSource`, over the Environment's `AtomRegistry`. Marked pure, so an app that never
|
|
270
|
+
* builds it, with no `scroll` Feature, ships none of this module (#518).
|
|
271
|
+
*/
|
|
272
|
+
export const layer = /*#__PURE__*/ Layer.effect(ScrollSource.ScrollSource)(
|
|
273
|
+
/*#__PURE__*/ Effect.map(AtomRegistry.AtomRegistry, (registry) => ({
|
|
274
|
+
// Each container's listeners while a reader holds them, the last one out removing them (#618, M7;
|
|
275
|
+
// #518: `SharedSource.counted`, where Effect's `RcMap` put its code in every app). An element is its
|
|
276
|
+
// own key, never hashed.
|
|
277
|
+
scroll: readerOf(registry, SharedSource.counted(open, (container) => Effect.sync(container.remove))),
|
|
278
|
+
})));
|
|
244
279
|
//# sourceMappingURL=scroll.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/internal/scroll.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/internal/scroll.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wardic/dom",
|
|
3
|
-
"version": "1.0.0-rc.
|
|
3
|
+
"version": "1.0.0-rc.6",
|
|
4
4
|
"description": "The browser environment for Wardic: its clock, renderer, input, probe and projection system, as Effect Layers.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"animation",
|
|
@@ -55,13 +55,13 @@
|
|
|
55
55
|
"typecheck:tests": "../../node_modules/typescript-7/bin/tsc -p tsconfig.test.json"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@wardic/core": "1.0.0-rc.
|
|
58
|
+
"@wardic/core": "1.0.0-rc.6",
|
|
59
59
|
"culori": "^4.0.2"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"effect": "^4.1.1"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"@wardic/test": "1.0.0-rc.
|
|
65
|
+
"@wardic/test": "1.0.0-rc.6"
|
|
66
66
|
}
|
|
67
67
|
}
|
package/src/DomProbe.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The DOM's Probe: boxes from `getBoundingClientRect`, sizes and visibility from the observers, the
|
|
3
|
-
* viewport, the reduced-motion preference from `matchMedia`, whether the page is shown
|
|
4
|
-
*
|
|
5
|
-
* `
|
|
3
|
+
* viewport, the reduced-motion preference from `matchMedia`, and whether the page is shown. `layer` needs
|
|
4
|
+
* the Environment's `AtomRegistry`, which it writes its live values through; `DomLive` provides both. A
|
|
5
|
+
* container's scroll is `DomScrollSource`'s.
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* import * as DomProbe from "@wardic/dom/DomProbe"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The DOM's scroll, core's `ScrollSource`: a container's scroll as an Atom, set inside the container's
|
|
3
|
+
* `scroll` event, the window's `resize`, and a resize of the container or its content, so a value derived
|
|
4
|
+
* from a scroll is written in the frame that shows it. `layer` needs the Environment's `AtomRegistry`,
|
|
5
|
+
* which it writes through. A binding builds it where something reads a scroll: the Solid binding's
|
|
6
|
+
* `scroll` Feature does, beside `DomLive`.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* import * as DomScrollSource from "@wardic/dom/DomScrollSource"
|
|
10
|
+
*
|
|
11
|
+
* const scroll = DomScrollSource.layer.pipe(Layer.provide(AtomRegistry.layer))
|
|
12
|
+
*/
|
|
13
|
+
// `@wardic/dom/DomScrollSource` (#518, ADR-0041's names): the DOM Probe's `scroll` until then.
|
|
14
|
+
export { layer } from "./internal/scroll.ts"
|
package/src/FlushGate.ts
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
import * as Context from "effect/Context"
|
|
22
22
|
import * as Effect from "effect/Effect"
|
|
23
23
|
import * as Layer from "effect/Layer"
|
|
24
|
-
import
|
|
24
|
+
import * as Atom from "effect/reactivity/Atom"
|
|
25
25
|
import type * as Scope from "effect/Scope"
|
|
26
26
|
import * as internal from "./internal/gate.ts"
|
|
27
27
|
import { makeRunner } from "./internal/runner.ts"
|
package/src/ScrollOffset.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Scroll offsets, the DOM's: Motion's syntax for where a target's progress through its scroll container
|
|
3
|
-
* runs, from 0 to 1, which the DOM's `
|
|
3
|
+
* runs, from 0 to 1, which the DOM's `ScrollSource` resolves. Core takes an offset as its Environment's
|
|
4
4
|
* own and passes it through, so its syntax, its names and its units are the DOM's.
|
|
5
5
|
*
|
|
6
6
|
* - **An edge** is a name (`start`, `center`, `end`), a fraction of a length (`0.5`), or a CSS length:
|
package/src/index.ts
CHANGED
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
* `@wardic/dom`: the browser Environment, and the framework-free pieces a binding builds on. It's for
|
|
3
3
|
* binding authors, Wardic's own and any other, and it's Effect-typed.
|
|
4
4
|
*
|
|
5
|
-
* - **An app** imports {@link DomLive}, the composed Environment it hands its binding,
|
|
6
|
-
* {@link CheckFrames}, to check its Frames in development
|
|
5
|
+
* - **An app** imports {@link DomLive}, the composed Environment it hands its binding,
|
|
6
|
+
* {@link CheckFrames}, to check its Frames in development, and {@link FrameLoopMetrics}, to record the
|
|
7
|
+
* Frame loop's metrics.
|
|
7
8
|
* - **A binding** imports each module by its subpath, as a namespace
|
|
8
9
|
* (`import * as FlushGate from "@wardic/dom/FlushGate"`), and the root re-exports each one:
|
|
9
10
|
* - the DOM's implementations of core's services, each with its `layer` (Effect's platform
|
|
10
|
-
* convention: `DomRenderer`, `DomInput`, `DomProbe`, `DomClock`, `DomAnnouncer`,
|
|
11
|
+
* convention: `DomRenderer`, `DomInput`, `DomProbe`, `DomScrollSource`, `DomClock`, `DomAnnouncer`,
|
|
11
12
|
* `DomInterpolators`, `DomPositionalKeys`, `DomDefaultTransition`), and `DomKeyRules`, the Key
|
|
12
13
|
* rules `DomInterpolators.layer` installs, which has none of its own;
|
|
13
14
|
* - dom's own concepts, by the glossary's names: `FlushGate`, `ProjectionSystem`,
|
|
@@ -16,7 +17,8 @@
|
|
|
16
17
|
*
|
|
17
18
|
* Everything under `internal/` is dom's own and not exported.
|
|
18
19
|
*/
|
|
19
|
-
// `@wardic/dom` (#132, ADR-0041), Tier 2 (ADR-0008); CheckFrames re-exported for an app (#586)
|
|
20
|
+
// `@wardic/dom` (#132, ADR-0041), Tier 2 (ADR-0008); CheckFrames re-exported for an app (#586), and
|
|
21
|
+
// FrameLoopMetrics (#518).
|
|
20
22
|
import type * as Clock from "@wardic/core/Clock"
|
|
21
23
|
import * as FrameLoop from "@wardic/core/FrameLoop"
|
|
22
24
|
import type * as InterpolatorRegistry from "@wardic/core/InterpolatorRegistry"
|
|
@@ -27,7 +29,7 @@ import type * as Probe from "@wardic/core/Probe"
|
|
|
27
29
|
import type * as RefreshFrameSource from "@wardic/core/RefreshFrameSource"
|
|
28
30
|
import type * as Renderer from "@wardic/core/Renderer"
|
|
29
31
|
import * as Layer from "effect/Layer"
|
|
30
|
-
import
|
|
32
|
+
import * as AtomRegistry from "effect/reactivity/AtomRegistry"
|
|
31
33
|
import * as DomAnnouncer from "./DomAnnouncer.ts"
|
|
32
34
|
import * as DomClock from "./DomClock.ts"
|
|
33
35
|
import * as DomDefaultTransition from "./DomDefaultTransition.ts"
|
|
@@ -36,11 +38,12 @@ import * as DomPositionalKeys from "./DomPositionalKeys.ts"
|
|
|
36
38
|
import * as DomProbe from "./DomProbe.ts"
|
|
37
39
|
import * as DomRenderer from "./DomRenderer.ts"
|
|
38
40
|
|
|
39
|
-
export const VERSION = "1.0.0-rc.
|
|
41
|
+
export const VERSION = "1.0.0-rc.6"
|
|
40
42
|
|
|
41
43
|
export * as DomClock from "./DomClock.ts"
|
|
42
44
|
export * as DomInput from "./DomInput.ts"
|
|
43
45
|
export * as DomProbe from "./DomProbe.ts"
|
|
46
|
+
export * as DomScrollSource from "./DomScrollSource.ts"
|
|
44
47
|
export * as DomRenderer from "./DomRenderer.ts"
|
|
45
48
|
export * as DomAnnouncer from "./DomAnnouncer.ts"
|
|
46
49
|
export * as DomInterpolators from "./DomInterpolators.ts"
|
|
@@ -70,6 +73,15 @@ export * as Report from "./Report.ts"
|
|
|
70
73
|
// ADR-0030 decision 7; re-exported here for an app (#586).
|
|
71
74
|
export { CheckFrames } from "@wardic/core/FrameLoop"
|
|
72
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Core's Frame loop metrics (`FrameLoop.layerMetrics`), here for an app. Merged beside {@link DomLive},
|
|
78
|
+
* the loop records the animations running, the runs that settled or failed, and each tick's ms, for the
|
|
79
|
+
* devtools or an exporter to read. Without it, it records none: see
|
|
80
|
+
* https://wardic.dev/guides/observability.
|
|
81
|
+
*/
|
|
82
|
+
// #518, ADR-0067 *Amendment (#518)*, decision 2: opt-in, re-exported here for an app, as `CheckFrames` is.
|
|
83
|
+
export { layerMetrics as FrameLoopMetrics } from "@wardic/core/FrameLoop"
|
|
84
|
+
|
|
73
85
|
/**
|
|
74
86
|
* The browser Environment, composed: the DOM's services, core's interpolators with the DOM's Key
|
|
75
87
|
* rules, and the Frame loop over the DOM's Clock, needing nothing else. Hand it to `WardicProvider`'s
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* observed now and as it's added, and let go as it's removed. A deep change counts once it resizes
|
|
4
4
|
* the direct child it sits in.
|
|
5
5
|
*
|
|
6
|
-
* - `
|
|
6
|
+
* - The DOM's `ScrollSource` watches a container's (the page's: the body's), so its range follows its content
|
|
7
7
|
* (#239, ADR-0043 *Amendment (#239)*).
|
|
8
8
|
* - The Projection system watches the page's, so a node that content elsewhere moved is measured again
|
|
9
9
|
* (#261, ADR-0018 *Amendment (#261)*).
|
package/src/internal/gate.ts
CHANGED
|
@@ -55,7 +55,8 @@ import * as FrameLoop from "@wardic/core/FrameLoop"
|
|
|
55
55
|
import * as RefreshFrameSource from "@wardic/core/RefreshFrameSource"
|
|
56
56
|
import * as Renderer from "@wardic/core/Renderer"
|
|
57
57
|
import * as Cause from "effect/Cause"
|
|
58
|
-
import
|
|
58
|
+
import * as Atom from "effect/reactivity/Atom"
|
|
59
|
+
import * as AtomRegistry from "effect/reactivity/AtomRegistry"
|
|
59
60
|
import * as Effect from "effect/Effect"
|
|
60
61
|
import * as Exit from "effect/Exit"
|
|
61
62
|
import type * as Fiber from "effect/Fiber"
|
package/src/internal/probe.ts
CHANGED
|
@@ -35,9 +35,9 @@ import * as Predicate from "effect/Predicate"
|
|
|
35
35
|
import * as Queue from "effect/Queue"
|
|
36
36
|
import * as Stream from "effect/Stream"
|
|
37
37
|
import * as UndefinedOr from "effect/UndefinedOr"
|
|
38
|
-
import
|
|
38
|
+
import * as Atom from "effect/reactivity/Atom"
|
|
39
|
+
import * as AtomRegistry from "effect/reactivity/AtomRegistry"
|
|
39
40
|
import { requireGlobal } from "./require-global.ts"
|
|
40
|
-
import { makeScroll } from "./scroll.ts"
|
|
41
41
|
|
|
42
42
|
/** Map a `DOMRect`-like value onto the engine's portable {@link Bounds}. */
|
|
43
43
|
/** An `IntersectionObserver`'s init from the Probe's options: each left out when not given. */
|
|
@@ -157,8 +157,6 @@ const make = Effect.gen(function* () {
|
|
|
157
157
|
viewport,
|
|
158
158
|
prefersReducedMotion,
|
|
159
159
|
visible,
|
|
160
|
-
// A container's scroll, set within its events (#234): `scroll.ts`.
|
|
161
|
-
scroll: yield* makeScroll(registry),
|
|
162
160
|
observeResize,
|
|
163
161
|
observeIntersection,
|
|
164
162
|
})
|
|
@@ -89,7 +89,7 @@ import * as Result from "effect/Result"
|
|
|
89
89
|
import * as Scope from "effect/Scope"
|
|
90
90
|
import * as Str from "effect/String"
|
|
91
91
|
import * as UndefinedOr from "effect/UndefinedOr"
|
|
92
|
-
import
|
|
92
|
+
import * as AtomRegistry from "effect/reactivity/AtomRegistry"
|
|
93
93
|
import {
|
|
94
94
|
type BoxSize,
|
|
95
95
|
type Holdable,
|
package/src/internal/scroll.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `
|
|
3
|
-
* Atom, set inside the container's `scroll` event, the window's
|
|
4
|
-
* container or its content (#239), so a value derived from a scroll is
|
|
5
|
-
* shows it (#45's pattern for `viewport`).
|
|
2
|
+
* `ScrollSource` for the DOM (#234, ADR-0043 *Amendment (#233, #234)*; the Probe's `scroll` until
|
|
3
|
+
* #518): a container's scroll as an Atom, set inside the container's `scroll` event, the window's
|
|
4
|
+
* `resize`, and a resize of the container or its content (#239), so a value derived from a scroll is
|
|
5
|
+
* written in the frame that shows it (#45's pattern for `viewport`).
|
|
6
6
|
*
|
|
7
7
|
* One listener set a container, however many read it: a reader adds its own measure to the
|
|
8
8
|
* container's set and takes it out when its Scope closes, and the last one out removes the
|
|
9
|
-
* listeners
|
|
10
|
-
*
|
|
9
|
+
* listeners: core's `SharedSource.counted`, not a shared Stream, so a reader sets its Atom inside the
|
|
10
|
+
* event, where a Stream's consumer would set it after.
|
|
11
11
|
*
|
|
12
12
|
* A reader with a `target` or an `offset` reads its progress on `axis` through Motion's offsets
|
|
13
13
|
* (`ScrollOffset`, the DOM's syntax; `render/dom/scroll/offsets` in framer-motion 13.4.0, ported):
|
|
@@ -26,18 +26,19 @@
|
|
|
26
26
|
*
|
|
27
27
|
* Observability: per event, so quiet (no span, no log).
|
|
28
28
|
*/
|
|
29
|
-
import
|
|
29
|
+
import * as ScrollSource from "@wardic/core/ScrollSource"
|
|
30
|
+
import * as SharedSource from "@wardic/core/SharedSource"
|
|
30
31
|
import * as Arr from "effect/Array"
|
|
31
32
|
import * as Bool from "effect/Boolean"
|
|
32
33
|
import * as Effect from "effect/Effect"
|
|
33
|
-
import * as Equal from "effect/Equal"
|
|
34
34
|
import * as Iter from "effect/Iterable"
|
|
35
|
+
import * as Layer from "effect/Layer"
|
|
35
36
|
import * as Match from "effect/Match"
|
|
36
37
|
import * as Option from "effect/Option"
|
|
37
38
|
import * as Order from "effect/Order"
|
|
38
39
|
import * as Predicate from "effect/Predicate"
|
|
39
|
-
import * as
|
|
40
|
-
import
|
|
40
|
+
import * as Atom from "effect/reactivity/Atom"
|
|
41
|
+
import * as AtomRegistry from "effect/reactivity/AtomRegistry"
|
|
41
42
|
import * as Rec from "effect/Record"
|
|
42
43
|
import type * as Scope from "effect/Scope"
|
|
43
44
|
import * as Str from "effect/String"
|
|
@@ -219,7 +220,7 @@ const sizeOf = (target: Element): { readonly width: number; readonly height: num
|
|
|
219
220
|
const plainProgress = (current: number, length: number): number => Bool.match(length === 0, { onTrue: () => 1, onFalse: () => current / length })
|
|
220
221
|
|
|
221
222
|
/** What a reader measures, for `options` on `element`. Reads layout: called in events, never per frame. */
|
|
222
|
-
const measureOf = (element: Element, options:
|
|
223
|
+
const measureOf = (element: Element, options: ScrollSource.Options): (() => ScrollSource.Scroll) => {
|
|
223
224
|
const { axis = "y" } = options
|
|
224
225
|
// The DOM's offset (core passes it through as the Environment's own); `All` with a target and none.
|
|
225
226
|
const offset = UndefinedOr.match(options.offset as ScrollOffset.ScrollOffset | undefined, {
|
|
@@ -256,7 +257,7 @@ const measureOf = (element: Element, options: Probe.ScrollOptions): (() => Probe
|
|
|
256
257
|
}
|
|
257
258
|
|
|
258
259
|
/** Whether two scrolls read the same: an unchanged one isn't set, so its readers hear nothing. */
|
|
259
|
-
const sameScroll = (a:
|
|
260
|
+
const sameScroll = (a: ScrollSource.Scroll, b: ScrollSource.Scroll): boolean =>
|
|
260
261
|
Arr.every(
|
|
261
262
|
[
|
|
262
263
|
a.x.current === b.x.current,
|
|
@@ -272,18 +273,6 @@ const sameScroll = (a: Probe.Scroll, b: Probe.Scroll): boolean =>
|
|
|
272
273
|
/** The page's scroller: `document.scrollingElement`, else the root element. */
|
|
273
274
|
const pageOf = (): Element => Option.getOrElse(Option.fromNullOr(document.scrollingElement), () => document.documentElement)
|
|
274
275
|
|
|
275
|
-
/** The DOM's `Probe.scroll`, its Atoms set through `registry`: its containers held in the current Scope. */
|
|
276
|
-
export const makeScroll = (
|
|
277
|
-
registry: AtomRegistry.AtomRegistry,
|
|
278
|
-
): Effect.Effect<(options?: Probe.ScrollOptions) => Effect.Effect<Atom.Atom<Probe.Scroll>, never, Scope.Scope>, never, Scope.Scope> =>
|
|
279
|
-
Effect.map(
|
|
280
|
-
// Each container's listeners while a reader holds them, the last one out removing them (#618, M7:
|
|
281
|
-
// Effect's `RcMap` where a count was kept by hand). An element is keyed by reference: Effect's
|
|
282
|
-
// structural `Hash` would walk a DOM node.
|
|
283
|
-
RcMap.make({ lookup: (element: Element) => Effect.acquireRelease(Effect.sync(() => open(element)), (container) => Effect.sync(container.remove)) }),
|
|
284
|
-
(containers) => readerOf(registry, containers),
|
|
285
|
-
)
|
|
286
|
-
|
|
287
276
|
/** A container's listener set, opened for its first reader. */
|
|
288
277
|
const open = (element: Element): Container => {
|
|
289
278
|
const readers = new Set<() => void>()
|
|
@@ -324,10 +313,10 @@ const open = (element: Element): Container => {
|
|
|
324
313
|
}
|
|
325
314
|
|
|
326
315
|
/** A reader of a container's scroll: the container's listeners held from `containers` while its Scope is open. */
|
|
327
|
-
const readerOf = (registry: AtomRegistry.AtomRegistry, containers:
|
|
328
|
-
Effect.fnUntraced(function* (options:
|
|
316
|
+
const readerOf = (registry: AtomRegistry.AtomRegistry, containers: (element: Element) => Effect.Effect<Container, never, Scope.Scope>) =>
|
|
317
|
+
Effect.fnUntraced(function* (options: ScrollSource.Options = {}) {
|
|
329
318
|
const element = UndefinedOr.match(options.container as Element | undefined, { onUndefined: pageOf, onDefined: (given) => given })
|
|
330
|
-
const container = yield*
|
|
319
|
+
const container = yield* containers(element)
|
|
331
320
|
const measure = measureOf(element, options)
|
|
332
321
|
let last = measure()
|
|
333
322
|
// Mounted while read, not kept alive: a kept-alive Atom's node never leaves the registry.
|
|
@@ -354,3 +343,16 @@ const readerOf = (registry: AtomRegistry.AtomRegistry, containers: RcMap.RcMap<E
|
|
|
354
343
|
})
|
|
355
344
|
return atom
|
|
356
345
|
})
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* The DOM's `ScrollSource`, over the Environment's `AtomRegistry`. Marked pure, so an app that never
|
|
349
|
+
* builds it, with no `scroll` Feature, ships none of this module (#518).
|
|
350
|
+
*/
|
|
351
|
+
export const layer: Layer.Layer<ScrollSource.ScrollSource, never, AtomRegistry.AtomRegistry> = /*#__PURE__*/ Layer.effect(ScrollSource.ScrollSource)(
|
|
352
|
+
/*#__PURE__*/ Effect.map(AtomRegistry.AtomRegistry, (registry) => ({
|
|
353
|
+
// Each container's listeners while a reader holds them, the last one out removing them (#618, M7;
|
|
354
|
+
// #518: `SharedSource.counted`, where Effect's `RcMap` put its code in every app). An element is its
|
|
355
|
+
// own key, never hashed.
|
|
356
|
+
scroll: readerOf(registry, SharedSource.counted(open, (container: Container) => Effect.sync(container.remove))),
|
|
357
|
+
})),
|
|
358
|
+
)
|