@wardic/core 1.0.0-rc.4 → 1.0.0-rc.5
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/Clock.d.ts.map +1 -1
- package/dist/Clock.js +20 -12
- package/dist/Clock.js.map +1 -1
- package/dist/FrameLoop.d.ts +12 -1
- package/dist/FrameLoop.d.ts.map +1 -1
- package/dist/FrameLoop.js +23 -1
- package/dist/FrameLoop.js.map +1 -1
- package/dist/LiveValue.d.ts +2 -2
- package/dist/LiveValue.d.ts.map +1 -1
- package/dist/LiveValue.js +5 -4
- package/dist/LiveValue.js.map +1 -1
- package/dist/Probe.d.ts +4 -46
- package/dist/Probe.d.ts.map +1 -1
- package/dist/Probe.js +5 -5
- package/dist/Probe.js.map +1 -1
- package/dist/ScrollSource.d.ts +62 -0
- package/dist/ScrollSource.d.ts.map +1 -0
- package/dist/ScrollSource.js +21 -0
- package/dist/ScrollSource.js.map +1 -0
- package/dist/SharedSource.d.ts +35 -15
- package/dist/SharedSource.d.ts.map +1 -1
- package/dist/SharedSource.js +84 -108
- package/dist/SharedSource.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/frameLoop.d.ts +17 -0
- package/dist/internal/frameLoop.d.ts.map +1 -1
- package/dist/internal/frameLoop.js +33 -20
- package/dist/internal/frameLoop.js.map +1 -1
- package/dist/internal/hearing.d.ts +13 -0
- package/dist/internal/hearing.d.ts.map +1 -0
- package/dist/internal/hearing.js +71 -0
- package/dist/internal/hearing.js.map +1 -0
- package/package.json +1 -1
- package/src/Clock.ts +29 -17
- package/src/FrameLoop.ts +24 -1
- package/src/LiveValue.ts +7 -6
- package/src/Probe.ts +7 -53
- package/src/ScrollSource.ts +68 -0
- package/src/SharedSource.ts +113 -146
- package/src/index.ts +2 -1
- package/src/internal/frameLoop.ts +41 -18
- package/src/internal/hearing.ts +76 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameLoop.js","sourceRoot":"","sources":["../../src/internal/frameLoop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frameLoop.js","sourceRoot":"","sources":["../../src/internal/frameLoop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as Exit from "effect/Exit";
|
|
2
|
+
import * as Stream from "effect/Stream";
|
|
3
|
+
export interface Hearing<A> {
|
|
4
|
+
/** Hands the Stream `a`. */
|
|
5
|
+
readonly hear: (a: A) => void;
|
|
6
|
+
/** Ends the Stream after what it was handed: failed with `exit`'s failure, else ended. An interruption ends it. */
|
|
7
|
+
readonly end: (exit: Exit.Exit<void>) => void;
|
|
8
|
+
/** What it was handed, in order, until its end. */
|
|
9
|
+
readonly stream: Stream.Stream<A>;
|
|
10
|
+
}
|
|
11
|
+
/** A fresh hearing, handed nothing yet. */
|
|
12
|
+
export declare const make: <A>() => Hearing<A>;
|
|
13
|
+
//# sourceMappingURL=hearing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hearing.d.ts","sourceRoot":"","sources":["../../src/internal/hearing.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AAGnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAA;IAC7B,mHAAmH;IACnH,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAA;IAC7C,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;CAClC;AASD,2CAA2C;AAC3C,eAAO,MAAM,IAAI,GAAI,CAAC,OAAK,OAAO,CAAC,CAAC,CAyCnC,CAAA"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A subscriber's hearing: its own Stream, fed by plain calls. `hear` hands it a value and `end` ends it,
|
|
3
|
+
* or fails it with its source's failure. A consumer waiting on the Stream is resumed inside the call, as a
|
|
4
|
+
* `PubSub`'s subscriber was, never through the Effect scheduler (ADR-0017, decision 3), and a busy one
|
|
5
|
+
* takes everything handed since, together, at its next pull.
|
|
6
|
+
*/
|
|
7
|
+
// #518, ADR-0067 *Amendment (#518)*, decision 3: under `Clock.ticks` and `SharedSource`, where a `PubSub` per
|
|
8
|
+
// source put its code in every app. Not a `Queue`: its offer schedules a release of its takers on the
|
|
9
|
+
// scheduler, a task a frame, even when they're released at once.
|
|
10
|
+
import * as Arr from "effect/Array";
|
|
11
|
+
import * as Cause from "effect/Cause";
|
|
12
|
+
import * as Effect from "effect/Effect";
|
|
13
|
+
import * as Exit from "effect/Exit";
|
|
14
|
+
import * as Option from "effect/Option";
|
|
15
|
+
import * as Predicate from "effect/Predicate";
|
|
16
|
+
import * as Stream from "effect/Stream";
|
|
17
|
+
/** A pull's end: the source's failure, else the Stream's end. An interruption ends it. */
|
|
18
|
+
const endOf = (exit) => {
|
|
19
|
+
if (Exit.isSuccess(exit))
|
|
20
|
+
return Cause.done();
|
|
21
|
+
if (Cause.hasInterruptsOnly(exit.cause))
|
|
22
|
+
return Cause.done();
|
|
23
|
+
return Effect.failCause(exit.cause);
|
|
24
|
+
};
|
|
25
|
+
/** A fresh hearing, handed nothing yet. */
|
|
26
|
+
export const make = () => {
|
|
27
|
+
let heard = [];
|
|
28
|
+
let ended = Option.none();
|
|
29
|
+
// The waiting pull's settle, while one waits. Per tick on the Clock's: a statement check, no Option.
|
|
30
|
+
let waiting;
|
|
31
|
+
const wake = () => {
|
|
32
|
+
if (Predicate.isUndefined(waiting))
|
|
33
|
+
return;
|
|
34
|
+
const resume = waiting;
|
|
35
|
+
waiting = undefined;
|
|
36
|
+
resume();
|
|
37
|
+
};
|
|
38
|
+
const take = Effect.callback((resume) => {
|
|
39
|
+
// What it was handed since, or its end: whether there was either to resume with.
|
|
40
|
+
const settle = () => {
|
|
41
|
+
if (Arr.isReadonlyArrayNonEmpty(heard)) {
|
|
42
|
+
const taken = heard;
|
|
43
|
+
heard = [];
|
|
44
|
+
resume(Effect.succeed(taken));
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
if (Option.isNone(ended))
|
|
48
|
+
return false;
|
|
49
|
+
resume(endOf(ended.value));
|
|
50
|
+
return true;
|
|
51
|
+
};
|
|
52
|
+
if (settle())
|
|
53
|
+
return;
|
|
54
|
+
waiting = settle;
|
|
55
|
+
return Effect.sync(() => {
|
|
56
|
+
waiting = undefined;
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
hear: (a) => {
|
|
61
|
+
heard.push(a);
|
|
62
|
+
wake();
|
|
63
|
+
},
|
|
64
|
+
end: (exit) => {
|
|
65
|
+
ended = Option.some(exit);
|
|
66
|
+
wake();
|
|
67
|
+
},
|
|
68
|
+
stream: Stream.fromPull(Effect.succeed(take)),
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=hearing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hearing.js","sourceRoot":"","sources":["../../src/internal/hearing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,8GAA8G;AAC9G,sGAAsG;AACtG,iEAAiE;AACjE,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAWvC,0FAA0F;AAC1F,MAAM,KAAK,GAAG,CAAC,IAAqB,EAAoC,EAAE;IACxE,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;IAC7C,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5D,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACrC,CAAC,CAAA;AAED,2CAA2C;AAC3C,MAAM,CAAC,MAAM,IAAI,GAAG,GAAkB,EAAE;IACtC,IAAI,KAAK,GAAa,EAAE,CAAA;IACxB,IAAI,KAAK,GAAmC,MAAM,CAAC,IAAI,EAAE,CAAA;IACzD,qGAAqG;IACrG,IAAI,OAAoC,CAAA;IACxC,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,IAAI,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC;YAAE,OAAM;QAC1C,MAAM,MAAM,GAAG,OAAO,CAAA;QACtB,OAAO,GAAG,SAAS,CAAA;QACnB,MAAM,EAAE,CAAA;IACV,CAAC,CAAA;IACD,MAAM,IAAI,GAA4D,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE;QAC/F,iFAAiF;QACjF,MAAM,MAAM,GAAG,GAAY,EAAE;YAC3B,IAAI,GAAG,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,KAAK,CAAA;gBACnB,KAAK,GAAG,EAAE,CAAA;gBACV,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC7B,OAAO,IAAI,CAAA;YACb,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YACtC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;YAC1B,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;QACD,IAAI,MAAM,EAAE;YAAE,OAAM;QACpB,OAAO,GAAG,MAAM,CAAA;QAChB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACtB,OAAO,GAAG,SAAS,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;YACV,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACb,IAAI,EAAE,CAAA;QACR,CAAC;QACD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;YACZ,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzB,IAAI,EAAE,CAAA;QACR,CAAC;QACD,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC9C,CAAA;AACH,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wardic/core",
|
|
3
|
-
"version": "1.0.0-rc.
|
|
3
|
+
"version": "1.0.0-rc.5",
|
|
4
4
|
"description": "Wardic's animation engine on Effect: springs, tweens, keyframes, variants, the projection geometry, and the services an environment provides.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"animation",
|
package/src/Clock.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
// per-Environment re-implementation.
|
|
17
17
|
//
|
|
18
18
|
// The loop is the single update path: every Refresh frame computes `dt` from successive timestamps and
|
|
19
|
-
// calls `tick`, the only
|
|
19
|
+
// calls `tick`, the only one that hands a tick to the subscribers. There is deliberately no `MAX_DT` clamp
|
|
20
20
|
// here: clamping is a consumer-boundary concern (each leaf's step clamps at `Machine.MAX_DT`, #78), so the
|
|
21
21
|
// Clock reports raw deltas.
|
|
22
22
|
//
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
// `InterpolatorRegistry.layer` is the precedent for a shared constructor living in core. Observability:
|
|
42
42
|
// each subscription to `ticks` runs inside a `wardic.clock` span and emits a debug log on subscribe; the
|
|
43
43
|
// per-frame `tick` path stays quiet, the hot path.
|
|
44
|
+
import * as Arr from "effect/Array"
|
|
44
45
|
import * as Bool from "effect/Boolean"
|
|
45
46
|
import * as Context from "effect/Context"
|
|
46
47
|
import * as Effect from "effect/Effect"
|
|
@@ -48,11 +49,11 @@ import * as Layer from "effect/Layer"
|
|
|
48
49
|
import * as MutableRef from "effect/MutableRef"
|
|
49
50
|
import * as Option from "effect/Option"
|
|
50
51
|
import * as Predicate from "effect/Predicate"
|
|
51
|
-
import * as PubSub from "effect/PubSub"
|
|
52
52
|
import * as Scope from "effect/Scope"
|
|
53
53
|
import * as Stream from "effect/Stream"
|
|
54
54
|
import * as Microtask from "./Microtask.ts"
|
|
55
55
|
import * as RefreshFrameSource from "./RefreshFrameSource.ts"
|
|
56
|
+
import * as Hearing from "./internal/hearing.ts"
|
|
56
57
|
import { tracedStream } from "./internal/tracing.ts"
|
|
57
58
|
|
|
58
59
|
/**
|
|
@@ -132,8 +133,10 @@ export const fromRefreshFrames: <Handle>(
|
|
|
132
133
|
const { requestFrame, cancelFrame } = source
|
|
133
134
|
const now = Option.getOrElse(Option.fromNullishOr(source.now), () => () => performance.now())
|
|
134
135
|
|
|
135
|
-
//
|
|
136
|
-
|
|
136
|
+
// Who hears each dt (seconds): each subscriber's hearing, which resumes a waiting subscriber inside the
|
|
137
|
+
// Refresh frame's callback. Replaced, never changed in place, as `InputFeed.byTarget`'s list is (#518: a
|
|
138
|
+
// `PubSub` did this, and every app shipped its code).
|
|
139
|
+
let hearers: ReadonlyArray<(dt: number) => void> = []
|
|
137
140
|
|
|
138
141
|
// The previous Refresh frame's time (ms), for dt computation; None => no
|
|
139
142
|
// Refresh frame since the loop started (ADR-0017, decision 2). It is the frame's
|
|
@@ -173,17 +176,17 @@ export const fromRefreshFrames: <Handle>(
|
|
|
173
176
|
* gets the rest of the interval, and a dt never goes below 0. There is no upper
|
|
174
177
|
* clamp here: that is the consumer boundary's (`MAX_DT`).
|
|
175
178
|
*
|
|
176
|
-
*
|
|
177
|
-
*
|
|
179
|
+
* Hands dt to every subscriber. Hot path — intentionally unlogged; one `now()` read per
|
|
180
|
+
* Refresh frame.
|
|
178
181
|
*/
|
|
179
182
|
const tick = (t: number): Effect.Effect<void> =>
|
|
180
|
-
Effect.
|
|
183
|
+
Effect.sync(() => {
|
|
181
184
|
const at = now()
|
|
182
185
|
const [current, delta] = timing(t, at)
|
|
183
186
|
MutableRef.set(lastTime, Option.some(current))
|
|
184
187
|
MutableRef.set(lastStamp, Option.some(t))
|
|
185
188
|
MutableRef.set(lastNow, at)
|
|
186
|
-
|
|
189
|
+
Arr.forEach(hearers, (hear) => hear(delta))
|
|
187
190
|
})
|
|
188
191
|
|
|
189
192
|
// One Refresh frame as an interruptible Effect: requests a frame, resumes with
|
|
@@ -266,20 +269,29 @@ export const fromRefreshFrames: <Handle>(
|
|
|
266
269
|
MutableRef.decrement(subscribers)
|
|
267
270
|
})
|
|
268
271
|
|
|
269
|
-
// Subscribing joins the
|
|
270
|
-
//
|
|
272
|
+
// Subscribing joins the hearers, then joins the loop. Join the hearers FIRST,
|
|
273
|
+
// so no tick once the loop runs can miss this subscriber.
|
|
271
274
|
// A Stream, not a Channel: measured 2026-11-02, Stream's own layers were ~5% of a pull of 1,000
|
|
272
275
|
// subscribers' ticks (bench:core's `ticksOnly`), and at most one pull a frame a provider on an
|
|
273
276
|
// app's path, under 0.3% of a frame. Channel goes only where a profile shows it (#618, M5).
|
|
274
277
|
const ticks = tracedStream(
|
|
275
278
|
Stream.unwrap(
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
279
|
+
Effect.gen(function* () {
|
|
280
|
+
yield* Effect.logDebug("wardic.clock: subscribe")
|
|
281
|
+
const { hear, stream } = Hearing.make<number>()
|
|
282
|
+
yield* Effect.acquireRelease(
|
|
283
|
+
Effect.sync(() => {
|
|
284
|
+
hearers = Arr.append(hearers, hear)
|
|
285
|
+
}),
|
|
286
|
+
() =>
|
|
287
|
+
Effect.sync(() => {
|
|
288
|
+
hearers = Arr.filter(hearers, (heard) => heard !== hear)
|
|
289
|
+
}),
|
|
290
|
+
)
|
|
291
|
+
yield* Effect.acquireRelease(join, () => leave)
|
|
292
|
+
return stream
|
|
293
|
+
}),
|
|
294
|
+
),
|
|
283
295
|
"wardic.clock",
|
|
284
296
|
)
|
|
285
297
|
|
package/src/FrameLoop.ts
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* The Frame loop: the one loop per Environment that steps every running animation once a tick, in one
|
|
3
3
|
* pass, so many animations cost one loop and not a fiber each. A binding runs its animations on it with
|
|
4
4
|
* `Machine.run`, each Frame handed to its sink. `CheckFrames` turns on a check for development, which
|
|
5
|
-
* fails a run whose step gives a NaN or an Infinity, with `NonFiniteFrame
|
|
5
|
+
* fails a run whose step gives a NaN or an Infinity, with `NonFiniteFrame`, and `layerMetrics` the loop's
|
|
6
|
+
* metrics, for the devtools or an exporter.
|
|
6
7
|
*
|
|
7
8
|
* @example
|
|
8
9
|
* import * as FrameLoop from "@wardic/core/FrameLoop"
|
|
@@ -17,6 +18,7 @@
|
|
|
17
18
|
// authors.
|
|
18
19
|
import * as Context from "effect/Context"
|
|
19
20
|
import * as Layer from "effect/Layer"
|
|
21
|
+
import * as Metric from "effect/Metric"
|
|
20
22
|
import * as internal from "./internal/frameLoop.ts"
|
|
21
23
|
|
|
22
24
|
export { CheckFrames, NonFiniteFrame } from "./internal/frameLoop.ts"
|
|
@@ -41,3 +43,24 @@ export class FrameLoop extends Context.Service<FrameLoop, internal.Shape>()("@wa
|
|
|
41
43
|
// `DomLive`, `testLayer`. Built from the internal `make` (#618, C1): a service class with a `make` of its
|
|
42
44
|
// own showed it to callers, who build the loop only through this Layer (ADR-0028, decision 11).
|
|
43
45
|
export const layer = Layer.effect(FrameLoop)(internal.make())
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* The Frame loop's metrics, for an app that reads them: `wardic_frameloop_animations`, the animations
|
|
49
|
+
* running now; `wardic_frameloop_settled` and `wardic_frameloop_failed`, counts of the runs that ended;
|
|
50
|
+
* and `wardic_frameloop_tick_ms`, each tick's work, as a histogram. Merge it beside the Environment, as
|
|
51
|
+
* you give the devtools or an exporter. Without it, the loop records no metric.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* const env = Layer.mergeAll(DomLive, devtools, FrameLoop.layerMetrics)
|
|
55
|
+
*/
|
|
56
|
+
// #518, ADR-0067 *Amendment (#518)*, decision 2: opt-in, so an app that reads none ships none. Marked pure,
|
|
57
|
+
// so an app that never imports it drops `Metric`.
|
|
58
|
+
export const layerMetrics: Layer.Layer<never> = /*#__PURE__*/ Layer.sync(internal.MetricsGiven, () => ({
|
|
59
|
+
animations: Metric.gauge("wardic_frameloop_animations", { description: "Primitives running on the Frame loop" }),
|
|
60
|
+
settled: Metric.counter("wardic_frameloop_settled", { description: "Runs on the Frame loop that settled" }),
|
|
61
|
+
failed: Metric.counter("wardic_frameloop_failed", { description: "Runs on the Frame loop that failed" }),
|
|
62
|
+
tickMs: Metric.histogram("wardic_frameloop_tick_ms", {
|
|
63
|
+
description: "Milliseconds the Frame loop spends on one tick",
|
|
64
|
+
boundaries: Metric.linearBoundaries({ start: 0, width: 0.5, count: 32 }),
|
|
65
|
+
}),
|
|
66
|
+
}))
|
package/src/LiveValue.ts
CHANGED
|
@@ -36,7 +36,7 @@ import * as Easing from "./Easing.ts"
|
|
|
36
36
|
import * as InterpolatorRegistry from "./InterpolatorRegistry.ts"
|
|
37
37
|
import type * as Frame from "./Frame.ts"
|
|
38
38
|
import * as Machine from "./Machine.ts"
|
|
39
|
-
import * as
|
|
39
|
+
import * as ScrollSource from "./ScrollSource.ts"
|
|
40
40
|
import * as Supersede from "./Supersede.ts"
|
|
41
41
|
import { dual } from "./internal/dual.ts"
|
|
42
42
|
|
|
@@ -534,11 +534,12 @@ export interface ScrollValues {
|
|
|
534
534
|
* @example
|
|
535
535
|
* const { scrollYProgress } = yield* LiveValue.scroll({ container })
|
|
536
536
|
*/
|
|
537
|
-
// #234, ADR-0043 *Amendment (#233, #234)*: derived from the Environment's `Probe
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
const
|
|
537
|
+
// #234, ADR-0043 *Amendment (#233, #234)*: derived from the Environment's `ScrollSource` (the Probe's
|
|
538
|
+
// `scroll` until #518).
|
|
539
|
+
export const scroll: (options?: ScrollSource.Options) => Effect.Effect<ScrollValues, never, ScrollSource.ScrollSource | Scope.Scope> =
|
|
540
|
+
Effect.fnUntraced(function* (options: ScrollSource.Options = {}) {
|
|
541
|
+
const source = yield* ScrollSource.ScrollSource
|
|
542
|
+
const info = yield* source.scroll(options)
|
|
542
543
|
return {
|
|
543
544
|
scrollX: Atom.make((get) => get(info).x.current),
|
|
544
545
|
scrollY: Atom.make((get) => get(info).y.current),
|
package/src/Probe.ts
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The Probe: what an Environment can tell the engine about what it draws. It measures a target's box;
|
|
3
|
-
* holds the viewport's size, whether the user prefers reduced motion
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* holds the viewport's size, whether the user prefers reduced motion and whether the Environment is
|
|
4
|
+
* shown, live, as Atoms; and observes a target's resizes and whether it's in view. Layout animations,
|
|
5
|
+
* in-view gestures and reduced motion all read it. A container's scroll is `ScrollSource`'s.
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* import * as Probe from "@wardic/core/Probe"
|
|
9
9
|
*
|
|
10
10
|
* const probe = yield* Probe.Probe
|
|
11
11
|
* const bounds = yield* probe.measure(card)
|
|
12
|
-
* const scroll = yield* probe.scroll({ container: list })
|
|
13
12
|
*/
|
|
14
13
|
// ADR-0028, decision 11. #610 (ADR-0036 *Amendment (#610)*): `visible`, not the web's `pageVisible`;
|
|
15
14
|
// `margin` is `unknown`, the Environment's syntax; `prefersReducedMotion` keeps its name, plain words in
|
|
16
|
-
// any Environment, where `reducedMotion` is the provider's setting.
|
|
15
|
+
// any Environment, where `reducedMotion` is the provider's setting. #518: `scroll` moved to `ScrollSource`,
|
|
16
|
+
// which the `scroll` Feature builds, so an app that reads no scroll ships none of its code.
|
|
17
17
|
import * as Context from "effect/Context"
|
|
18
18
|
import type * as Effect from "effect/Effect"
|
|
19
|
-
import type * as Scope from "effect/Scope"
|
|
20
19
|
import type * as Stream from "effect/Stream"
|
|
21
20
|
import type { Atom } from "effect/reactivity"
|
|
22
21
|
import type * as InputFeed from "./InputFeed.ts"
|
|
@@ -49,44 +48,6 @@ export interface Viewport {
|
|
|
49
48
|
readonly height: number
|
|
50
49
|
}
|
|
51
50
|
|
|
52
|
-
/** One axis of a container's scroll. */
|
|
53
|
-
// #234, ADR-0043 *Amendment (#233, #234)*.
|
|
54
|
-
export interface ScrollAxis {
|
|
55
|
-
/** How far the container is scrolled on the axis, in the Environment's units. */
|
|
56
|
-
readonly current: number
|
|
57
|
-
/** How far it can scroll on the axis: 0 for a container that doesn't overflow. */
|
|
58
|
-
readonly length: number
|
|
59
|
-
/**
|
|
60
|
-
* Progress, 0 to 1: through the container's scroll range, or, on the options' `axis` with a
|
|
61
|
-
* `target` or an `offset`, through the offsets the target passes.
|
|
62
|
-
*/
|
|
63
|
-
readonly progress: number
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/** A container's scroll on both axes: what the Probe's `scroll` holds. */
|
|
67
|
-
export interface Scroll {
|
|
68
|
-
/** Across. */
|
|
69
|
-
readonly x: ScrollAxis
|
|
70
|
-
/** Down. */
|
|
71
|
-
readonly y: ScrollAxis
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/** What the Probe's `scroll` reads, as Motion's `scroll` options. */
|
|
75
|
-
export interface ScrollOptions {
|
|
76
|
-
/** The scroll container: the Environment's own when left out. */
|
|
77
|
-
readonly container?: unknown
|
|
78
|
-
/** An element whose progress through the container `progress` reads, on `axis`. */
|
|
79
|
-
readonly target?: unknown
|
|
80
|
-
/**
|
|
81
|
-
* Where on `axis` the target's progress runs, from 0 to 1, in the Environment's own terms, which it
|
|
82
|
-
* reads and resolves, as `@wardic/dom`'s `ScrollOffset` does. Core passes it through, as it does
|
|
83
|
-
* `container` and `target`.
|
|
84
|
-
*/
|
|
85
|
-
readonly offset?: unknown
|
|
86
|
-
/** The axis `target` and `offset` apply to. Default `"y"`. */
|
|
87
|
-
readonly axis?: "x" | "y"
|
|
88
|
-
}
|
|
89
|
-
|
|
90
51
|
/** What an intersection is observed against, as Motion's `viewport`. Default: the viewport, no margin, any of the target. */
|
|
91
52
|
// #273, ADR-0047.
|
|
92
53
|
export interface IntersectionOptions {
|
|
@@ -94,9 +55,9 @@ export interface IntersectionOptions {
|
|
|
94
55
|
readonly root?: unknown
|
|
95
56
|
/**
|
|
96
57
|
* How far the container's edges are grown, or shrunk, before it counts, in the Environment's own
|
|
97
|
-
* syntax: core passes it on, as it does `
|
|
58
|
+
* syntax: core passes it on, as it does `ScrollSource.Options.offset`.
|
|
98
59
|
*/
|
|
99
|
-
// #610: `unknown`, as `offset` is; `@wardic/dom` takes the web's string (`rootMargin`).
|
|
60
|
+
// #610: `unknown`, as `ScrollSource.Options.offset` is; `@wardic/dom` takes the web's string (`rootMargin`).
|
|
100
61
|
readonly margin?: unknown
|
|
101
62
|
/** How much of the target must be in it to count: from 0, any of it, to 1, all of it. */
|
|
102
63
|
readonly amount?: number | undefined
|
|
@@ -125,13 +86,6 @@ export class Probe extends Context.Service<Probe, {
|
|
|
125
86
|
*/
|
|
126
87
|
// #443; `pageVisible` until #610.
|
|
127
88
|
readonly visible: Atom.Atom<boolean>
|
|
128
|
-
/**
|
|
129
|
-
* A container's scroll, live: an Atom the Environment sets as the container scrolls or resizes, as it
|
|
130
|
-
* happens, so a value derived from it is written in the frame that shows the scroll. One listener a
|
|
131
|
-
* container, however many read it, held while the Scope is.
|
|
132
|
-
*/
|
|
133
|
-
// #234, ADR-0043 *Amendment (#233, #234)*.
|
|
134
|
-
readonly scroll: (options?: ScrollOptions) => Effect.Effect<Atom.Atom<Scroll>, never, Scope.Scope>
|
|
135
89
|
/** A target's box each time it resizes. */
|
|
136
90
|
readonly observeResize: (target: unknown) => Stream.Stream<Bounds>
|
|
137
91
|
/**
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An Environment's scroll: a container's scroll, live, as an Atom the Environment sets as the container
|
|
3
|
+
* scrolls or resizes, as it happens, so a value derived from it is written in the frame that shows the
|
|
4
|
+
* scroll. Scroll-linked values read it (`LiveValue.scroll`).
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* import * as ScrollSource from "@wardic/core/ScrollSource"
|
|
8
|
+
*
|
|
9
|
+
* const source = yield* ScrollSource.ScrollSource
|
|
10
|
+
* const scroll = yield* source.scroll({ container: list })
|
|
11
|
+
*/
|
|
12
|
+
// #518, ADR-0067 *Amendment (#518)*, decision 5: the Probe's `scroll` until then (#234, ADR-0043
|
|
13
|
+
// *Amendment (#233, #234)*). A service of its own, so an app that reads no scroll ships none of an
|
|
14
|
+
// Environment's scroll code: the Solid binding's `scroll` Feature builds it, the Environment's when it
|
|
15
|
+
// gives one (`@wardic/test`'s), else the DOM's (`DomScrollSource`). Tier 2 (ADR-0008), for Environment
|
|
16
|
+
// authors.
|
|
17
|
+
import * as Context from "effect/Context"
|
|
18
|
+
import type * as Effect from "effect/Effect"
|
|
19
|
+
import type * as Scope from "effect/Scope"
|
|
20
|
+
import type { Atom } from "effect/reactivity"
|
|
21
|
+
|
|
22
|
+
/** One axis of a container's scroll. */
|
|
23
|
+
// #234, ADR-0043 *Amendment (#233, #234)*.
|
|
24
|
+
export interface Axis {
|
|
25
|
+
/** How far the container is scrolled on the axis, in the Environment's units. */
|
|
26
|
+
readonly current: number
|
|
27
|
+
/** How far it can scroll on the axis: 0 for a container that doesn't overflow. */
|
|
28
|
+
readonly length: number
|
|
29
|
+
/**
|
|
30
|
+
* Progress, 0 to 1: through the container's scroll range, or, on the options' `axis` with a
|
|
31
|
+
* `target` or an `offset`, through the offsets the target passes.
|
|
32
|
+
*/
|
|
33
|
+
readonly progress: number
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** A container's scroll on both axes: what `scroll` holds. */
|
|
37
|
+
export interface Scroll {
|
|
38
|
+
/** Across. */
|
|
39
|
+
readonly x: Axis
|
|
40
|
+
/** Down. */
|
|
41
|
+
readonly y: Axis
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** What `scroll` reads, as Motion's `scroll` options. */
|
|
45
|
+
export interface Options {
|
|
46
|
+
/** The scroll container: the Environment's own when left out. */
|
|
47
|
+
readonly container?: unknown
|
|
48
|
+
/** An element whose progress through the container `progress` reads, on `axis`. */
|
|
49
|
+
readonly target?: unknown
|
|
50
|
+
/**
|
|
51
|
+
* Where on `axis` the target's progress runs, from 0 to 1, in the Environment's own terms, which it
|
|
52
|
+
* reads and resolves, as `@wardic/dom`'s `ScrollOffset` does. Core passes it through, as it does
|
|
53
|
+
* `container` and `target`.
|
|
54
|
+
*/
|
|
55
|
+
readonly offset?: unknown
|
|
56
|
+
/** The axis `target` and `offset` apply to. Default `"y"`. */
|
|
57
|
+
readonly axis?: "x" | "y"
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** An Environment's scroll. */
|
|
61
|
+
export class ScrollSource extends Context.Service<ScrollSource, {
|
|
62
|
+
/**
|
|
63
|
+
* A container's scroll, live: an Atom the Environment sets as the container scrolls or resizes, as it
|
|
64
|
+
* happens, so a value derived from it is written in the frame that shows the scroll. One listener a
|
|
65
|
+
* container, however many read it, held while the Scope is.
|
|
66
|
+
*/
|
|
67
|
+
readonly scroll: (options?: Options) => Effect.Effect<Atom.Atom<Scroll>, never, Scope.Scope>
|
|
68
|
+
}>()("@wardic/core/ScrollSource") {}
|